DFS(Depth First Search,深度优先搜索)与BFS(Breadth First Search,广度优先搜索)总结与思考

Depth First Search(dfs)

不管有多少条路,先一条道走到底,不断往下往后遍历,直到无路可走,再返回到上一个状态继续。常用递归实现,非递归常用存储待访问结点。使用的原因是栈是后进先出的,而dfs前次遍历到终点,下次迭代需要回到上一个状态。

bfs步骤:

  1. 不断递归,直到尽头。
  2. 回溯到上一个可以继续的状态。

比如,现在有一个图,结点为 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
B
C
D
E
F
G
H
  1. 访问结点 A A A,把 A A A压入栈(此时栈: A A A)。
  2. 继续向下访问 B B B B B B入栈(此时栈: B , A B,A B,A
  3. 继续向下访问
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值