白话理解:
- 深度优先遍历:一路往最远的地方走
- 广度优先遍历:遍历向涟漪一样向外扩散
深度优先遍历具体过程:
这里以下图为数据列
首先选择一个未走到过的顶点作为起始的出发点,比如这里从1号顶点出发
沿1号顶点的边去尝试访问其他未走过的顶点,首先发现2号顶点没有走到过,于是来到2号顶点
再以2号顶点作为出发点,访问没有走过的顶点,走到4号点
来到4号点,发现已经不能访问没有走过的顶点了。所有需要返回到前一个顶点2号点
返回2号点发现还是没有未访问的顶点,返回1号点,从1号点开始,访问未走过的3号、5号
这里以下图为数据列:
- 从起点0开始遍历
- 从其邻接表得到的所有的邻接节点,把这三个节点都进行标记,表示访问过了(215)
- 从0的邻接表第一个顶点2开始寻找新的岔路。
- 重复步骤2,返回到0点
- 接着从0的邻接表第二顶点开始寻找新的岔路
- 重复步骤2,直到遍历结束