基于邻接表的深度优先遍历
时间: 2023-07-24 12:19:35 浏览: 123
利用邻接表实现图的深度优先遍历
邻接表是一种存储图结构的数据结构,其中每个节点的所有邻居节点都被存储为一个链表。深度优先遍历(Depth First Search, DFS)是一种图遍历算法,它从图中某个顶点开始遍历,沿着一条路走到底,直到不能再走为止,然后回退到上一个节点,再沿着另一条路走到底,直到所有节点都被访问过为止。
基于邻接表的深度优先遍历实现如下:
1. 创建一个栈S和一个布尔数组visited。
2. 将起始节点入栈S并标记为visited。
3. 取出栈顶节点v,访问它并将其未被访问的邻居节点入栈S并标记为visited。
4. 重复步骤3直到栈S为空。
5. 如果还有未被访问的节点,则从其中任选一个节点作为起始节点,重复以上步骤。
需要注意的是,如果图是非连通的,则需要从每个未被访问的节点开始重复以上步骤,直到所有节点都被访问过为止。
阅读全文