[英]undirected acyclic graph edge insertion
如果图是非循环的,是否有任何算法可以在无向图中插入节点?
例如:如果图形如下所示
0 - 1
|
2 - 3
4 - 5
有效插入:2-4
0 - 1
|
2 - 3
|
4 - 5
无效插入:1 - 3
0 - 1
| | <=== cyclic!!!
2 - 3
4 - 5
如果有任何使用 C++ 的示例代码,我将不胜感激。
您可以为顶点集维护一个不相交集的数据结构。 该结构有以下操作:
find(x)
返回x
所属集合的标识符,union(x,y)
合并x
和y
的集合。对于您的示例,数据结构的状态如下:
当您尝试添加边 1-3 时,您会发现顶点 1 和 3 属于同一集合 S1,因此您跳过添加。
当您尝试添加边 2-4 时,您会发现顶点 2 和 4 属于不同的集合(相应地是 S1 和 S2),您添加这条边,并将结构更新为:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.