22.4-1 给出算法 TOPOLOGICAL-SORT 运行于图 22-8 上时所生成的结点次序。这里的所有假设和练习 22.3-2 一样。
ANSWER:
22.4-2 请给出一个线性时间的算法,算法的输入为一个有向无环图 G = (V, E) 以及两个结点 s 和 t,算法的输出是从结点 s 到结点 t 之间的简单路径的数量。例如,对于图 22-8 所示的有向无环图,从结点 p 到结点 v 一共有 4 条简单路径,分别是 pov、poryv、posryv 和 psryv。(本题仅要求计数简单路径的条数,而不要求将简单路径本身列举出来。)
ANSWER:给结点附加一个计数属性time,初始化 t.time = 1,其它的 time 均为 0 ,以 s 为源结点进行 DFS,一旦搜索到 t,则 t 马上着黑色(即不继续搜索 t 的后代)。每当结束一个结点的搜索,则该结点的 time 属性 = 该结点所指向的所有结点的 time 之和。最后 s.time 即路径条数。
<
本文介绍了拓扑排序在有向无环图(DAG)中的应用,包括算法TOPOLOGICAL-SORT在特定图上的运行结果,以及线性时间算法求解s到t的简单路径数量。同时,探讨了判断无向图是否存在环路的O(V)复杂度算法。此外,讨论了在DAG上执行拓扑排序的方法,以及当图包含环路时可能出现的情况。

1835

被折叠的 条评论
为什么被折叠?



