X32专项练习部分22

本文深入探讨了5阶B树的构建,平衡二叉树的设计,以及子集树和排序树的概念与操作。通过实例解析了子集树的二叉树抽象,排序树的全排列计算,并提供了相关练习,如三叉树中度为0节点的查找,时间复杂度分析,哈夫曼树和编码的理解,以及线索二叉树子树判断的技巧。
摘要由CSDN通过智能技术生成

构建5阶B树

/*
    在一个空的5阶B-树中依次插入关键字序列{6,8,15,16,22,10,18,32,20}
    插入完成后,关键字6所在结点包含的关键字个数为

        正确答案: B
        2
        3
        4
        5

    这里先补充1个构建5阶B树的过程
        比如用关键字序列
        {1,2,6,7,11,4,8,13,10,5,17,9,16,20,3,12,14,18,19,15}
        来构建一棵B-树

        由于是5阶B树
        每个节点最多有5个子节点
        所以每个节点内部关键字个数为1-4个
        于是,第一步是插入1,2,6,7作为一个节点
        然后插入11,得到1,2,6,7,11. 因为节点个数超过4,所以需要对该节点进行拆分
        选取中间节点6,进行提升,提升为父节点
        见图1-1

        接着插入节点
        因为最右下的节点内有5个元素,超过最大个数4了,所以需要进行拆分
        把中间节点10进行提升,上升到和6一起
        见图1-2

        接着插入节点
        当插入20的时候
        有1个节点内部关键字数量又超过4个了
        需要再次拆分,16提升为父节点
        见图1-3

        当插入完15关键字
        提升完父节点
        会发现最高父节点内部关键字数量超过4个
        需要提升中间值为父节点
        于是10成为最高父节点
        见图1-4

		重点在于
        把一个节点提升为父节点的时候千万别忘了拆分

		这道题我构建了1把
		6关键字所在节点包含6 8 10
		兄弟节点分别包含关键字
		16,18
		22,32
		最高父节点为15,20
     */

1-1
在这里插入图片描述

1-2
在这里插入图片描述

1-3
在这里插入图片描述

1-4
在这里插入图片描述

构建平衡二叉树

/*
    依次将关键字序列7, 6, 4, 10, 8, 11插入到一棵空的平衡二叉树中
    插入后的平衡二叉树的根结点为

        正确答案: D
        7
        6
        10
        8

    平衡二叉树:
    是一种特殊的二叉排序树,其左右子树都是平衡二叉树
    要求BF(平衡因子=其左子树高-其右子树高)只能取0,1,-1

    注意这道题是边插入边调整
    插入4的时候调整1次
    插入8的时候调整1次
        当时是
        7
         \
          10
         /
        8
    通过二叉排序树特点可知
    当前节点右子节点的左子节点
    一定介于当前节点和当前节点的右子节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

muskfans

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值