层序遍历的应用
bobo老师。您讲的层序遍历的应用我理解。但是,在BST中,当我们知道要搜寻的目标和根结点值的相对大小后,我们只搜索根结点的左侧或右侧不就行了吗?为啥还要用层序遍历呢? 比如,如果目标值大于根节点的值,根据BST定义,我们只需要搜到根节点的右子树不就成了?
16
收起
正在回答
1回答
对于在 BST 上做查找来说,因为有 BST 本身的定义限制,是的,我们不需要使用 BFS 做查找。实际上,我们也不需要使用 DFS 做查找。DFS 和 BFS 都是遍历整个树结构的方式。而在 BST 的定义下,对于给定节点,我们完全不需要遍历整棵树。
但是,并不是所有的结构都有 BST 的性质。比如,如果我给你一棵不满足 BST 性质的二叉树或者多叉树,怎么找到给定的节点?就可以使用 BFS。
以后你学到图论也会看到,图这种结构,一定没有诸如 BST 这样的性质,那么我们怎么找到给定的节点?就可以使用 BFS。
相较 DFS,BFS 有一个特殊的“性质”,就是通过 BFS 可以得到目标节点和遍历起始节点的最短距离。这一点的应用主要在图结构上。你不了解没关系,以后学习图的时候,近乎一定会学习这个结论的。在这一章,你先了解如何使用 DFS 或者 BFS 遍历整棵树就好。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星