前言-数据结构
数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。
图的遍历
- 定义
- 从图中某个顶点出发访遍图中其余顶点,且每个顶点仅被访问一次,就叫做图的遍历
图的遍历算法是求解图的连通性问题,拓扑排序和求关键路径等算法的基础
深度优先(栈)
- 主要思想
- 先取任意一个顶点然后往下,访问过的记为1 没有的记为0
- 然后往下一个结点便利,如果它下面的顶点都访问结束了,就退回上一个顶点,继续遍历
- 直到所有顶点访问完毕
- 例如,对所示无向图G7. 从各个顶点出发的深度优先搜索遍历序列可有多种,在无向图G7中,从顶点0出发的深度优先搜索遍历序列举如下,Ps:顶点可以按任意顺序访问 所以有很多种顺序
- 答案
0,3,2,6,1,5,4
0,3,2,6,1,4,5
广度优先(队列)
- 主要思想
- 使用队列取任意一个顶点开始遍历 然后访问后续结点
- 如果与结点连接的各个顶点遍历完后出队列
- 直到所有都遍历完
- 例如,对下图所示无向图G7,从顶点1出发的广度优先搜索遍历序列可有多种,下面仅给出三种,其它可作类似分析。在无向图G7中,从项点1出发的广度优先搜索遍历序列举如下:
- 答案
1,2,3,4,5,6,7,8
1,3,2,4,7,6,4,8
1,2,3,5,4,7,6,8