图的遍历
给出一个图G和其中任意一个顶点V 0 ,从V 0 出发系统的访问G中所有的顶点,每个顶点访问一次,这叫 图的遍历 。 深度优先搜索(depth-first search)简称DFS 基本思想 访问 一个顶点 V ,然后访问 该顶点邻接 到的 未被访问过的顶点V’ 再从V’出发递归地按照深度优先的方式遍历; 当遇到一个所有邻接于它多的顶点都被访问过了的顶点U时,则回到已访问顶点序列中最后一个未被访问的相邻顶点的顶点W; 在从W出发递归地按照深度优先的方式遍历 最后,当任何已被访问过的顶点都未被访问的相邻顶点时,则遍历结束。 深度优先搜索时间复杂度 对于具有 n个顶点 和 e条边 的无向图或有向图,深度优先搜索算法对图中 每一个顶点至多调用一次DFS 函数 用 邻接矩阵 表示图时,共需检查n 2 个矩阵元素,所需时间为 O(n 2 ) 用 邻接表 表示图时,找邻接点需将邻接表中所有边结点检查一遍,需要时间O(e),对应的深度优先搜索算法时间复杂度为 O(n+e) 。 深度优先搜索(breadth-first search)简称BFS 基本思想 访问顶点V 0 然后访问顶点V 0 邻接到的所有未被访问的顶点V 1 ,V 2 ,…,V i 再依次访问V 1 ,V 2 ,…,V i 邻接道德所有未被访问的顶点 如此进行下去,直到访问遍所有顶点 广度优先搜索时间复杂度 对于具有 n个顶点 和