擅长:python、mysql、java
<p>您需要的是对节点进行拓扑排序。你知道吗</p>
<p><a href="http://en.wikipedia.org/wiki/Topological_sorting" rel="nofollow">http://en.wikipedia.org/wiki/Topological_sorting</a></p>
<p>最基本的想法是给每个节点分配一个整数,这个整数在开始时等于它的输出数。然后将值为<code>0</code>的所有节点(即没有输出的节点)添加到表示顺序的列表中。对于曾经附加到列表的每个节点,从与作为该节点输入的节点关联的值中减去一个。如果这些节点中的任何一个现在的值为零,那么也将它们添加到列表中。重复做。只要您没有循环,就可以保证进程最终会终止,并且列表中的节点将以这样一种方式排序,即输入总是先于输出。你知道吗</p>