数据结构中折半查找判定树

十五题为什么选a,看了好多包括王道都讲的是左子树比右子树少1或0,答案解释的也完全不懂。

img

你参考一下这篇文章吧,解释的够清楚了

下列二叉树中,可能成为折半查找判定树(不含外部结点)的是()_我就是我JJ的博客-CSDN博客 答案:B答案解析:折半查找判定树实际上是一棵二叉排序树,它的中序序列是一个有序序列。可以在树结点上依次填上相应的元素,符合折半查找规则的树即是所求。B选项4、5相加除二向上取整,7、8相加除二向下取整,矛盾。C选项,3、4相加除二向上取整,6、7相加除二向下取整,矛盾。D选项,1、10相加除二向下取整,6、7相加除二向上取整,矛盾。A符合折半查找规则,正确。分析: 折半查找整个算法中,关于mid的取值向上/向下需要统一。如果待查找序列中节点总数是偶数,计算mid值的时候一定涉及向上/向下取值问. https://blog.csdn.net/qq_41754065/article/details/106590844

问题即初学时,所用例子是当序列个数为偶数,左右相加÷2时向下取整,误以为只可向下取整,实则也可以向上取整,不过要保持一致,即一开始序列向上取整分,后续子序列也要保证采用同样方法。
归纳:向下取整,左子树≤右子树(个数)
向上取整,右子树≤左子树
此类题直接看各个子树,当所有子树都满足上式之一,才合理,各有满足则不合理。