以下问题来自Sedgewick和Wayne关于Java算法的书籍:
4.2.19 拓扑排序和BFS。
解释为什么以下算法不一定产生拓扑排序:运行BFS,并按照到各自源点的距离递增标记顶点。
我试图通过寻找反例来证明它。但是,每次尝试时,我都得到一个拓扑排序。 我的意思是,我不明白为什么这样不起作用:如果顶点的源在它之前,为什么我们没有拓扑排序?
我认为为了证明它,我们需要找到一个源在其之前的顶点,但我找不到。
有人有反例吗?谢谢!
注:这不是作业
@编辑:我尝试了一个类似哈密顿路径的1 <- 2 <- 0 <- 3 <- 4,这给出了0 3 4 2 1,但改变0 3和4的位置会给我一个拓扑排序(但按照我得到的顺序,它不是)。 我不确定这是否是拓扑排序。
4.2.19 拓扑排序和BFS。
解释为什么以下算法不一定产生拓扑排序:运行BFS,并按照到各自源点的距离递增标记顶点。
我试图通过寻找反例来证明它。但是,每次尝试时,我都得到一个拓扑排序。 我的意思是,我不明白为什么这样不起作用:如果顶点的源在它之前,为什么我们没有拓扑排序?
我认为为了证明它,我们需要找到一个源在其之前的顶点,但我找不到。
有人有反例吗?谢谢!
注:这不是作业
@编辑:我尝试了一个类似哈密顿路径的1 <- 2 <- 0 <- 3 <- 4,这给出了0 3 4 2 1,但改变0 3和4的位置会给我一个拓扑排序(但按照我得到的顺序,它不是)。 我不确定这是否是拓扑排序。