[英]Would sequence of nodes visited by BFS and DFS ever be the same?
假设深度优先搜索(DFS)和广度优先搜索(BFS)的图遍历分别使用堆栈和队列来实现。
是否会出现 BFS 和 DFS 遍历的顶点序列相同的情况? 允许这种情况发生的图的属性是什么?
为简单起见,我们还假设这是一个稀疏图,我们的图表示为邻接列表,如下所示:
For example:
0 -> 1
1 -> 2
2 -> 3 -> 4 -> 1
3 -> 2 -> 4
BFS 和 DFS 以相同顺序访问节点的最简单图是链表。 由于链表只是一个在每个深度只有一个节点的图,因此两种算法都会以相同的顺序访问节点,假设您从无向图的链表的端点之一开始,或者从节点开始对于有向图,indegree=0。
这仅适用于一些非常简单的图形。 它们都是这样的,其中root是你访问的第一个节点,遍历的顺序如图,从左到右。 随意删除您想要的任何节点,我只是尽可能绘制最复杂的结构。
作为一般规则,只有最右边的孩子才能拥有多个孩子。 但是您可以让链接“返回”到图中先前访问过的任何节点。
r o o t
/ |... \
1st 2nd nth
\
node
\
...
\
node
/ |.. \
a b z
\
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.