下列二叉树中,可能成为折半查找判定树(不含外部结点)的是()

《下列二叉树中,可能成为折半查找判定树(不含外部结点)的是()》

答案:A

答案解析:
折半查找判定树实际上是一棵二叉排序树,它的中序序列是一个有序序列。可以在树结点上依次填上相应的元素,符合折半查找规则的树即是所求。
《下列二叉树中,可能成为折半查找判定树(不含外部结点)的是()》
B选项4、5相加除二向上取整,7、8相加除二向下取整,矛盾。C选项,3、4相加除二向上取整,6、7相加除二向下取整,矛盾。D选项,1、10相加除二向下取整,6、7相加除二向上取整,矛盾。A符合折半查找规则,正确。

分析:
折半查找整个算法中,关于mid的取值向上/向下需要统一。
如果待查找序列中节点总数是偶数,计算mid值的时候一定涉及向上/向下取值问题。

  • 向下取整
    • 如果待查找序列中节点总数是偶数,且向下取整,那么mid作为排序树的根节点,它的左子树中节点总数一定比右子树中节点总数1。
      例如,在结点1,2,3,4中查找, low=1,high=4 mid=2(下取整)。因此,根节点为2, 左子树结点有1,右子树结点共有3,4
    • 如果待查找序列中节点总数是2,且向下取整,mid一定是其中较的那一个,剩下的的那一个节点变成mid的子树
  • 向上取整
    • 同理,如果待查找序列中节点总数是偶数,且向上取整,那么mid作为排序树的根节点,它的左子树中节点总数一定比右子树中节点总数1。
    • 如果待查找序列中节点总数是2,且向上取整,mid一定是其中较的那一个,剩下的的那一个节点变成mid的子树

将上述规律带入图中进行验证:
A:正确;
B:对于节点4和5,5作为mid,且4为其左子树,说明是向上取整;对于节点7和8,7作为mid,且8为其右子树,说明是向下取整。矛盾,说明B错;
C、D同理。

    原文作者:我就是我JJ
    原文地址: https://blog.csdn.net/qq_41754065/article/details/106590844
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞