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

在这里插入图片描述

答案: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同理。

  • 137
    点赞
  • 279
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值