繁体   English   中英

有向图-生成交叉边缘集

[英]Directed graph - build set of cross edges

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

PS:这不是功课,我只是为DS&A决赛做准备,而我陷入了这个问题。 谢谢!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM