数据结构期末复习——图的遍历
图的遍历:
1.定义:从某个结点出发访问遍图中结点,且使每个结点仅被访问一次
图的遍历具有复杂性,主要体现在以下几点
1.遍历没有规定从哪个结点开始访问,因此从任意结点开始访问均可
2.图的一个结点可以连接多个结点,因此无法确定访问此结点之后应该访问哪一个结点
3.如果一个图中存在回路,因此访问一个结点之后可能沿回路返回重复访问
4.从一个结点出发仅能访问到其联通结点,非连通图该如何访问其他结点
问题关键:如何确保每个结点都被访问到,如何保证每个结点仅被访问一次
DFS(深度优先)、BFS(广度优先)
DFS过程
1.从图中某一结点开始访问
2.访问该节点的邻接结点,递归这个过程,直到没有可以访问的邻接结点u为止
3.回退到上一个结点,再次进行递归直到图中结点均被访问为止
BFS过程
1.从图中某一结点开始访问
2.依次访问该结点所有未被访问过的邻接点
3.使得先被访问的顶点的邻接点先于后被访问的顶点的临界点访问
注:广度优先是一个分层搜索的过程,并不是一个递归的过程