C++之图的深度和广度遍历(手画图解释)

85 阅读1分钟

1.深度遍历就是逐层往下遍历,有点类似于二叉树中遍历时候不断往栈中只存入左孩子的做法

2.广度遍历类似二叉树的层次遍历

问:深度遍历和广度遍历结果唯一吗?

在有限的边界下,对于同一张图的同一起点,深度遍历和广度遍历的结果是唯一的。也就是说,如果是在同一张图的同一起点开始遍历,不管采用深度遍历还是广度遍历,得到的遍历顺序和结果序列是确定的。

但是,如果是在不同的起点开始遍历,得到的遍历顺序和结果序列可能是不同的。同时,在某些特殊情况下,两种遍历方式得到的结果也可能是相同的,例如在一条链式结构的图中。

需要注意的是,有些图是有环的,因此深度遍历和广度遍历可以在图中找到不同的环,导致结果不同。

一下是手画图解释: