博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
下列二叉树中,可能成为折半查找判定树(不含外部结点)的是()向上/下取整
阅读量:3953 次
发布时间:2019-05-24

本文共 868 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

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

总结:

注意:折半查找整个算法中,关于mid的取值向上/向下需要统一。
向上取整: mid 和子树比较,mid大于子树就是向上取整;
向下取整: mid 和子树比较, mid小于子树就是向下取整;

原链接:https://blog.csdn.net/qq_41754065/article/details/106590844

看到最后的帮忙

点个👍🙏 谢谢,这个对我真的很重要!

在这里插入图片描述

你可能感兴趣的文章
SERO幻影社区的背景怎么样?几大主流隐私币种技术分析!
查看>>
SERO目前具备的十大技术特点
查看>>
Neo4j CQL语句学习Day3
查看>>
Neo4j CQL学习Day4
查看>>
Mysql 数据库
查看>>
MySQL数据库练习
查看>>
Neo4j学习Day5
查看>>
Tomcat的基本配置
查看>>
Neo4j学习Day6~7
查看>>
Servlet学习笔记
查看>>
JSP相关介绍
查看>>
Session和Cookie
查看>>
数据库系统原理与设计复习笔记
查看>>
MVC设计模式
查看>>
GIT简要介绍
查看>>
人机交互期末复习笔记
查看>>
计算机网络复习笔记
查看>>
boost学习-1.安装
查看>>
boost学习-2.总体感受
查看>>
boost学习-3.conversion,多态类型之间的安全转型,与数据类型转换
查看>>