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

时间:2013-12-04 20:49:26

标签: loops recursion

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

想象一下,有消息,我需要转发它们。总共有三个人:H,S和A.转发模式是这样的。

如果有人向H发送消息,并且因为H从未收到此消息,则他将转发到S和A.当S收到消息时,这是S第一次收到消息,因此他将发送消息H和A.

ħ
/ \
S A
/ \ / \ H A S H

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

有人可以为我提供一个算法,以便在进入(S-> H和S-> A)下的一层之前我可以去H-> S和H-> A

感谢。

1 个答案:

答案 0 :(得分:0)

我想到的第一个想法是让您按照要访问它们的顺序排列值。例如。

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.

类似的东西。