有向图 的深度优先遍历
时间: 2023-09-05 20:08:51 浏览: 114
图的深度优先遍历
深度优先遍历是一种遍历图的方法,它从给定的起点开始,沿着一条路径尽可能深地访问图中的顶点,直到到达不能继续访问的顶点为止,然后回溯到前一个顶点,继续访问它的其他邻接顶点,重复上述过程,直到遍历完所有可以到达的顶点。
对于给定的有向图,深度优先遍历的过程中,可以利用栈来保存当前节点的"上级"们,以确保能够向上逐层找到它们。
在深度优先遍历的过程中,我们选择编号最小的待访问顶点,以顶点0为遍历起点。
具体的深度优先遍历算法可以按照以下步骤进行:
1. 将起点0入栈,并标记起点为已访问。
2. 当栈不为空时,取出栈顶元素作为当前节点。
3. 遍历当前节点的邻接顶点,如果邻接顶点未被访问过,则将它入栈,并标记为已访问。
4. 如果当前节点没有未被访问过的邻接顶点,则回溯到上一个节点,继续遍历其其他邻接顶点。
5. 重复步骤2-4,直到栈为空。
这样就完成了有向图的深度优先遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [图深度优先遍历](https://blog.csdn.net/m0_63040123/article/details/127656322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [自定义有向图的深度优先遍历(DFS)](https://blog.csdn.net/weixin_43415201/article/details/117229439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文