繁体   English   中英

无向图中的DFS-可以有交叉边吗?

[英]DFS in an undirected graph - can it have cross edges?

在无向图中,是否有可能将一条边出租给已访问过的节点,以导致其顶点不是当前节点的上升点?

更清楚地说,我想在无向图上实现深度优先搜索。 如果遇到连接当前顶点和已访问顶点的边,是否可以通过迭代父数组来保证从一个顶点到另一个顶点的路径?

最自然的答案似乎是肯定的。 我还没有找到反例。 你怎么看?

在DFS术语中:
边缘是否可以成为DFS中的交叉边缘-导致无向图中的一个已发现节点(而不是原点的祖先)的边缘?

DFS发现的边缘不能是交叉边缘,如果其目的地是已发现的节点,则它必须是后边缘-因此它导致了源节点的祖先(在DFS树中)。

证明:

假设情况并非如此,并且在某个节点v您遇到了一个已发现的节点( u ),该节点不是您的“父级”之一(在DFS树中)。
由于您发现了节点,所以存在边(v,u)
但是图形是无向的,因此边缘是对称的。

因为u已经发现了,你有以下选择:

  1. 在这种情况下,您基本上已经遍历了以u为根的子树,并且u确实是v的父级,因此u已被发现并且尚未“关闭”。
  2. u被发现并已经关闭。 但是考虑到您刚刚发现v ,并且有一个边(u,v) ,这是不可能的。

因此,导致无向图中已经发现的边缘的边缘必须是后边缘,而不能是交叉边缘。

暂无
暂无

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

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