目录
Depth First Search(dfs)
不管有多少条路,先一条道走到底,不断往下往后遍历,直到无路可走,再返回到上一个状态继续。常用递归实现,非递归常用栈存储待访问结点。使用栈的原因是栈是后进先出的,而dfs前次遍历到终点,下次迭代需要回到上一个状态。
bfs步骤:
- 不断递归,直到尽头。
- 回溯到上一个可以继续的状态。
比如,现在有一个图,结点为 A , B , C , D , E , F A,B,C,D,E,F A,B,C,D,E,F。其中, A A A与 B , C , D B,C,D B,C,D连接, B B B与 E , F E,F E,F连接。 C C C与 G , H G,H G,H连接。
- 访问结点 A A A,把 A A A压入栈(此时栈: A A A)。
- 继续向下访问 B B B, B B B入栈(此时栈: B , A B,A B,A)
- 继续向下访问