有向图-生成交叉边缘集

时间:2018-07-03 18:55:52

标签: algorithm graph-theory pseudocode

给定直接图G =(V,E),有什么有效的算法来构建其交叉边缘集?为什么?

P.S .:这不是功课,我只是在准备DS&A决赛,所以我陷入了这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确理解,您正在尝试在有向图中找到两端不是彼此祖先的交叉边缘。在这种情况下,您可以修改DFS算法以获取交叉边缘集。由于DFS算法在无向图和有向图中的工作方式相似,因此您需要记录一个顶点的发现时间和完成时间,并添加一个将一个顶点的值与另一个顶点进行比较的函数。例如,圆弧e的两端为u和v。在检查跟在e之后的顶点v的邻居u时,是否已经访问过u并完成了u(即u具有完成时间)并且u的开始时间小于v的开始时间,则e是一个交叉边。一旦算法发现弧为交叉边缘,您就可以将该弧添加到交叉边缘集合中并最终输出该集合。