从树的遍历看DFS和BFS

深度优先搜索(DFS)与先根遍历

 

事实上,对所有合法的DFS求解过程,都可以将其画为树的形式,DFS的过程就是对这颗树进行先根遍历的过程。

于是我们可以从中得到启发:碰到一些可以用DFS做的题目,可以把一些状态作为树的结点,然后问题就会转换为直观的对树进行先根遍历的问题。如果想要得到树的某些信息,也可以借助DFS以深度作为第一关键词的思想来对结点进行遍历,以获得所需要的结果。例如求解叶子节点的带权路径之和(即从根节点到叶子结点的路径上的结点点权之和)时就可以把到达死胡同作为一条路径结束的判断。

另外,在DFS中,还会有剪枝的概念,即在进行DFS的过程中,对某条可以确定不存在解的子树采取直接剪断的策略。这就是把DFS从树的角度理解才产生的概念。但是剪枝使用的前提是必须保证剪枝的正确性,否则就可能因为剪掉了有解的子树而最终获得了错误的答案。

 

广度优先搜索(BFS)与层次遍历

 

对所有合法的BFS求解过程,都可以将问题转化为一棵树,然后将BFS转化为树的层次遍历的过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值