Loops 递归/循环在进入下层之前完成顶层

Loops 递归/循环在进入下层之前完成顶层,loops,recursion,Loops,Recursion,我对这个递归循环有一个问题 假设有消息,我需要转发它们。一共有三个人:H、S和A。转发模式如下 Imgine如果有人向H发送消息,但由于H从未收到此消息,他将转发给S和a。当S收到消息时,S是第一次收到消息,因此他将发送给H和a。 H /\ 沙特阿拉伯 /\/\ 有H 我的问题是在我的方法中,它会像H->S->H->A->S一样 因为我的方法有点像递归 有没有人能给我一个算法,让我在进入(S->H和S->A)下的一层之前先进入H->S和H->A 谢谢。我想到的第一个想法是你按照你想要访问的顺序排

我对这个递归循环有一个问题

假设有消息,我需要转发它们。一共有三个人:H、S和A。转发模式如下

Imgine如果有人向H发送消息,但由于H从未收到此消息,他将转发给S和a。当S收到消息时,S是第一次收到消息,因此他将发送给H和a。

H
/\
沙特阿拉伯
/\/\
有H

我的问题是在我的方法中,它会像H->S->H->A->S一样 因为我的方法有点像递归

有没有人能给我一个算法,让我在进入(S->H和S->A)下的一层之前先进入H->S和H->A


谢谢。

我想到的第一个想法是你按照你想要访问的顺序排列这些值。比如说

Start at H, queue up S and A.

Next in line is S, queue up H and A.
Next in line is A, queue up S and H.

Next in line is H, nothing to queue.
Next in line is A, nothing to queue.
Next in line is S, nothing to queue.
Next in line is H, nothing to queue.

Nothing left in line.

诸如此类。

您正在寻找的是所谓的“广度优先搜索”。