答案 0 :(得分:0)
为了进行拓扑排序,请在图形上进行深度优先搜索。注意:要使其正常工作,它必须是有向无环图。该图是有向的(边沿为单向)和无环的(无环),因此此处的拓扑排序适用。您可以从没有传入边的任何节点开始,然后完成一个节点(即,您已经访问了该节点的所有子节点),然后将其添加到拓扑顺序的前面。注意:DAG 可能有多个拓扑顺序。
在这里,A是唯一没有传入边的节点。让我们运行DFS,在其中选择子项时,我们选择字母中第一个出现的子项。
A进入B,然后到达C,然后是D,然后是G,然后是F。 F 没有子代,因此完成了,将成为拓扑顺序中的最后一件事。我们返回到G,这将我们带到 H ,它也没有子级,因此在排序中将其放在F之前。从这里开始,我们继续DFS,直到订购完成。
我不会完全为您解决问题,但希望您能了解如何完成订购。