层序遍历的应用

层序遍历的应用

bobo老师。您讲的层序遍历的应用我理解。但是,在BST中,当我们知道要搜寻的目标和根结点值的相对大小后,我们只搜索根结点的左侧或右侧不就行了吗?为啥还要用层序遍历呢? 比如,如果目标值大于根节点的值,根据BST定义,我们只需要搜到根节点的右子树不就成了?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

对于在 BST 上做查找来说,因为有 BST 本身的定义限制,是的,我们不需要使用 BFS 做查找。实际上,我们也不需要使用 DFS 做查找。DFS 和 BFS 都是遍历整个树结构的方式。而在 BST 的定义下,对于给定节点,我们完全不需要遍历整棵树。


但是,并不是所有的结构都有 BST 的性质。比如,如果我给你一棵不满足 BST 性质的二叉树或者多叉树,怎么找到给定的节点?就可以使用 BFS。


以后你学到图论也会看到,图这种结构,一定没有诸如 BST 这样的性质,那么我们怎么找到给定的节点?就可以使用 BFS。


相较 DFS,BFS 有一个特殊的“性质”,就是通过 BFS 可以得到目标节点和遍历起始节点的最短距离。这一点的应用主要在图结构上。你不了解没关系,以后学习图的时候,近乎一定会学习这个结论的。在这一章,你先了解如何使用 DFS 或者 BFS 遍历整棵树就好。


继续加油!:)



  • 讲武德的年轻人 提问者 #1

    谢谢您的解答!有一个关于学习BFS/DFS相关问题。我目前在美国准备转码中,如果以刷题为目的看,您的 图论精讲 适合进一步学习BFS/DFS吗?因为我看这门课中的BFS/DFS的很多应用,比如图的检测等等,目前我看起来比较陌生,不知道是否适合我目前的学习阶段?谢谢您的解答!



    2022-03-10 20:51:36
  • liuyubobobo 回复 提问者 讲武德的年轻人 #2

    这个课程:https://coding.imooc.com/class/370.html  适合。对于大多数面试来说,图论方面看这个课程的前七章是最基础的,必须掌握。在这个基础上,从计算机专业的角度,11 章,12 章和 13 章前半部分(到拓扑排序)都是应该掌握的(并且面试有可能涉及)。其他内容选学即可。继续加油!:)

    2022-03-11 03:54:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2628    人
  • 解答问题       1105    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师