图解深度优先搜索
2012-07-18 11:42
218 查看
depth-first search(DFS)是以某一節點為出發點,不斷地前進拜訪未曾被拜訪過的節點,直到無路可走或是所有相鄰的節點都已經拜訪過為止,然後再退回前一個節點,尋找沒有拜訪過的節點,直到所有相鄰的節點都已被拜訪過。因此,進行 depth-first
search 時,需要使用 stack ,以便記錄所走過的路徑。
起始。假設從 a 開始拜訪,我們將 a 放進stack。
STACK | |
stack top | a |
假設我們選擇拜訪 b ,我們將 b 放進stack。
STACK | |
stack top | b |
a |
假設我們選擇拜訪 c ,我們將 c 放進stack。
STACK | |
stack top | c |
b | |
a |
我們選擇拜訪 f ,我們將 f 放進stack。
STACK | |
stack top | f |
c | |
b | |
a |
STACK | |
stack top | c |
b | |
a |
STACK | |
stack top | b |
a |
我們選擇拜訪 e ,我們將 e 放進stack。
STACK | |
stack top | e |
b | |
a |
STACK | |
stack top | b |
a |
STACK | |
stack top | a |
我們選擇拜訪 d ,我們將 d 放進stack。
STACK | |
stack top | d |
a |
我們選擇拜訪 g ,我們將 g 放進stack。
STACK | |
stack top | g |
d | |
a |
STACK | |
stack top | d |
a |
STACK | |
stack top | a |
此時 stack 已經全部清空,depth-first search完成。
相关文章推荐
- 深度优先搜索和广度优先搜索的简单对比
- 深度优先搜索遍历(DFS)——邻接矩阵存储
- 深度优先搜索 DFS
- LintCode 132-单词搜索II 深度优先
- 深度优先搜索
- 深度优先搜索 poj 2386
- SDUT-3469 深度优先搜索练习之神奇的矩环(暴力/DFS)
- 算法学习笔记11-DFS深度优先搜索
- 训练一 深度优先搜索
- 深度优先搜索练习之神奇的矩环
- 深度优先搜索遍历与广度优先搜索遍历
- nyoj 部分和问题(深度优先搜索DFS)
- DFS 深度优先搜索
- 深度优先搜索--算法(寻路问题 poj724)
- C/C++: 邻接矩阵 深度优先搜索
- [AI]深度优先搜索
- Prime Ring Problem(搜索 深度优先)
- 迷宫最短路径 深度优先搜索—C—python
- 深度优先搜索
- 【算法研究】搜索算法-深度优先搜索