以下问题在塞奇威克和韦恩本书算法被发现在Java中:拓扑为了使用BFS
4.2.19拓扑排序和BFS。解释为什么以下算法不一定会产生拓扑顺序:运行BFS,并通过增加到它们各自源的距离来标记顶点。
我试图证明它找到一个反例。但是,每次尝试,我都会得到一个拓扑顺序。 我的意思是,我不明白为什么这不起作用:如果一个顶点的源头出现在它之前,为什么我们没有一个拓扑顺序?
我认为要证明这一点,我们需要找到一个其来源之前的顶点,但我不能。
任何人都有反例吗?提前致谢!
PS:这不是功课
@Edit:我试图样1 <的哈密尔顿路径 - 2 < - 0 < - 3 < - 4,它给出0 3 4 2 1 ,但改变0 3和4的位置给了我一个拓扑顺序(但是,按照我得到的顺序,它不是)。那么我不确定这是否是一种拓扑顺序。
rank是什么定义?我只知道树木的等级。而且,如果D出现在A的邻接列表上,那么D可能会出现在C之前,对吗? – Giiovanna
Rank可以被认为是一个节点在BFS中处理的“级别”。 A会有1级,B和D会有2级,等等。 – adao7000
好的,非常感谢! – Giiovanna