子树基于旋转的平衡二叉排序树上插入的实现

插入排序  时间:2021-01-30  阅读:()

基于旋转的平衡二叉排序树上插入的实现

目录

1基本原理

1. 1基本概念

1. 2平衡调整算法

2实例及其调整图示

3结束语

通联编辑代影

正文

摘要创建平衡二叉排序树可采用不少种方法。对于教材中采用的旋转法在实际教学中常常引起初学者的疑惑。为了解决这个问题该文提出了一种更为简单的平衡二叉排序树方法与教材中的旋转法相比本算法简单易被理解有较大的推广和应用价值

关键字平衡二叉排序树;平衡因子;二叉树的平衡化

中图分类号 TP3 文献标识码 A

文章编号 1009-3044 2019 17-0003-02

开放科学资源服务标识码OSID

Abstract There are many methods for balanced binary treesorting. For the teaching materials used in the rotationmethod in practical teaching often caused confusion forbeginne. In order to solve this problem this paper proposesa more simple balanced binary sort tree method. Compared withthe rotation method in the textbook this algorithm issimple and easy to undetand and has great promotion andapplication value.

Key words balanced binary sort tree; equilibrium factor;equilibrium of binary trees

現行的数据结构教材中创建平衡二叉排序树方法是通过顺时针、逆时针的旋转把原非平衡的二叉树变为平衡二叉树。此种方法旋转次数旋转方向因不同的问题而不同虽然在理论上严谨但对初学者来说理解起来颇为困难。针对这一问题本文提出了一种更为简单的平衡二叉排序树方法这种方法不需要进行旋转平衡更容易理解。不仅对于初学者还是作为教学中的一种尝试都有着积极的意义。

1基本原理

1. 1基本概念

平衡二叉排序树

平衡二叉排序树的左、右子树高度之差的绝对值不超过1并且左、右子树都是平衡二叉排序树。空树也是平衡二叉排序树。

平衡因子

平衡因子是左子树的高度减去右子树的高度差也即深度差。因此所有结点的均衡因子是-1 0 1的二叉树是平衡二叉排序树。

最小不平衡子树

最小不平衡子树是指具有以下属性作为根的节点的子树最接近插入节点的祖先节点并且平衡因子不是-1 0 1。

1.2平衡调整算法

算法的基本思想

重新插入结点向根算平衡因子将离新插入结点最近的不平衡结点标为A顺向新插入结点方向标注B C调整分以下4种情况新插入结点相对于不平衡结点A的位置

算法的正确性

调整为平衡二叉树后 中序遍历对关键字进行了有序排列它可以维持二叉排序树原有的性质。与此同时不管任何一种情况在调整后都能确保根的新子树与原来的相同。因此 当平衡的二叉排序树引入新的结点而失去平衡时只需要平衡最小不平衡子树。

算法的复杂度

假设平衡二叉数有n个结点平衡二叉排序树的n个结点的深度为[log2n] 插入结点时的数量级为n的对数阶故其时间复杂度为O

 [log2n]  。在寻找新结点的插入位置时就能选择寻找最小的不平衡子树故查找最小不平衡子树的时间复杂度与插入结点的时间复杂度相等也为O  [log2n]

2实例及其调整图示

3结束语

该算法的源代码程序已在Visual C++ 6.0运行成功。算法条理清晰深受同学们喜爱 因此取得了较好的学习效果。二叉排序树平衡化可采用的方法中本方法有一定的优势。对它的准确掌握可以对后续的学习起到非常好的推动作用。 由实践可以表明本文采用的简单调整平衡算法要比教材中的旋转法更易被接受。

参考文献

[1]严蔚敏李冬梅吴伟民.数据结构C语言版第2版 [M] .北京人民邮电出版社 2014.

[2]张标汉.平衡二叉树调整教学探讨[J] .教育与教学研究 2009.

[3]张冰川.平衡二叉排序树的平衡调整简单算法[J] .科技广场

2007.

【通联编辑代影】

UCloud云服务器香港临时补货,(Intel)CN2 GIA优化线路,上车绝佳时机

至今为止介绍了很多UCLOUD云服务器的促销活动,UCLOUD业者以前看不到我们的个人用户,即使有促销活动,续费也很少。现在新用户的折扣力很大,包括旧用户在内也有一部分折扣。结果,我们的用户是他们的生存动力。没有共享他们的信息的理由是比较受欢迎的香港云服务器CN2GIA线路产品缺货。这不是刚才看到邮件注意和刘先生的通知,而是补充UCLOUD香港云服务器、INTELCPU配置的服务器。如果我们需要他...

Spinservers:美国圣何塞服务器,双E5/64GB DDR4/2TB SSD/10Gbps端口月流量10TB,$111/月

spinservers怎么样?spinservers大硬盘服务器。Spinservers刚刚在美国圣何塞机房补货120台独立服务器,CPU都是双E5系列,64-512GB DDR4内存,超大SSD或NVMe存储,数量有限,机器都是预部署好的,下单即可上架,无需人工干预,有需要的朋友抓紧下单哦。Spinservers是Majestic Hosting Solutions,LLC旗下站点,主营美国独立...

Friendhosting,美国迈阿密机房新上线,全场45折特价优惠,100Mbps带宽不限流量,美国/荷兰/波兰/乌兰克/瑞士等可选,7.18欧元/半年

近日Friendhosting发布了最新的消息,新上线了美国迈阿密的云产品,之前的夏季优惠活动还在进行中,全场一次性45折优惠,最高可购买半年,超过半年优惠力度就不高了,Friendhosting商家的优势就是100Mbps带宽不限流量,有需要的朋友可以尝试一下。Friendhosting怎么样?Friendhosting服务器好不好?Friendhosting服务器值不值得购买?Friendho...

插入排序为你推荐
金士顿内存卡价格金士顿64G内存卡多少钱一张美团月付怎么关闭商家退出美团怎么退涡轮增压和自然吸气哪个好自然吸气与涡轮增压发动机哪个更好法兰绒和珊瑚绒哪个好请问天鹅绒法兰绒和珊瑚绒哪个好啊 想买套床上用品小说软件哪个好用免费有什么好用的免费小说软件朗逸和速腾哪个好大众速腾与朗逸哪个好ps软件哪个好什么PS软件好电陶炉和电磁炉哪个好电陶炉和电磁炉哪个好?主要是炒菜,爆炒。加速器哪个好主流加速器哪个好手机炒股软件哪个好手机炒股软件哪个好啊?
域名管理 北京域名注册 已备案域名注册 免费二级域名申请 老域名全部失效请记好新域名 新秒杀 免费申请网页 technetcal webhostingpad BWH 59.99美元 云主机51web seednet 华为云服务登录 空间登入 广州虚拟主机 测速电信 免费个人网页 免费网站加速 远程登录 更多