- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
二叉树操作课程设计报告
一、总体设计
1、程序功能简介
带枚举值的二叉树的实现,利用枚举值使二叉树的组成尽量平衡,即
左右子树的级数相差不多。可以完成二叉树结点数据的插入、删除、
查找和输出等功能。
2、程序设计要求
(1)仔细阅读程序,回答下列问题
a.枚举值Red和Black在程序中起什么作用,Red的结点和Black的结
点有什么区别?
b.一个结点的左右子树最多可以相差几级?为什么?
c.程序是通过哪些函数来调整二叉树左右子树的结构,举例说明如何
调整。
(2)增加对二叉树上结点中的数据进行由大到小排序的函数。
(3)增加对二叉树上结点中的数据进行由小到大排序的函数。
(4)增加计算二叉树中结点上数据的平均值的函数。
(5)修改main函数,增加菜单选项,使得用户可以通过键盘反复输
入命令或数值查看运行结果。
评定难易等级:A级
二、详细设计
1、对二叉树的初步了解
(1)本题中的二叉树是一颗二叉查找树,首先应具有二叉查找树的
特征。它或者是一棵空树;或者是具有下列性质的二叉树:若左子树
不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不
空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也
分别为二叉排序树。且结点上数据互不相同。如图所示:
(2)本题中的二叉树同时为平衡二叉树中的一类——红黑树,因此
它具有红黑树的特征。
红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。
在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了
如下的额外要求:
性质1.节点是红色或黑色。
性质2.根节点是黑色。
性质3每个叶节点是黑色的。
性质4每个红色节点的两个子节点都是黑色。(从每个叶子到根的所
有路径上不能有两个连续的红色节点)
性质5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色
节点。
这些约束强制了红黑树的关键性质:从根到叶子的最长的可能路径
不多于最短的可能路径的两倍长。要知道为什么这些特性确保了这个
结果,注意到性质4导致了路径不能有两个毗连的红色节点就足够了。
最短的可能路径都是黑色节点,最长的可能路径有交替的红色和黑色
节点。因为根据性质5所有最长的路径都有相同数目的黑色节点,这
就表明了没有路径能多于任何其他路径的两倍长。
(3)由于红黑树性质的约束,在红黑树上只读操作不需要对用于二
叉查找树的操作做出修改,因为它也是二叉查找树。但是,在插入和
删除之后,红黑属性可能变得违规。恢复红黑属性需要少量(O(logn))
的颜色变更(这在实践中是非常快速的)并且不超过三次树旋转(对于
插入是两次)。这允许插入和删除保持为O(logn)次,但是它导致了
非常复杂的操作。
插入
我们首先以二叉查找树的方法增加节点并标记它为红色。(如果设为
黑色,就会导致根到叶子的路径上有一条路上,多一个额外的黑节点,
这个是很难调整的。但是设为红色节点后,可能会导致出现两个连续
红色节点的冲突,那么可以通过颜色调换(colorflips)和树旋转来调
整。)下面要进行什么操作取决于其他临近节点的颜色。同人类的家
族树中一样,我们将使用术语叔父节点来指一个节点的父节点的兄弟
节点。注意:
性质1和性质3总是保持着。
性质4只在增加红色节点、重绘黑色节点为红色,或做旋转时受到威
胁。
性质5只在增加黑色节点、重绘红色节点为黑色,或做旋转时受到威
胁。
在下面的示意图中,将要插入的节点标为N,N的父节点标为P,N
的祖父节点标为G,N的叔父节点标为U。在图中展示的任何颜色要
么是由它所处情形所作的假定,要么是这些假定所暗含(imply)的。
intRBtreeT::NodeInsert(RBnode*x)
{RBnode*tmp1=ROOT,*tmp2=tmp1;情形1:新节点N位于树的根上,没有父
节点。在这种情形下,我们把它重绘为黑
if(ROOT==NIL)
色以满足性质2。因为它在每个路径上对
{ROOT=x;黑节点数目增加一,性质5符合。
x-left=x-right=x-p=NIL;
++alive;
您可能关注的文档
- 会计新手真账实操:会计科目表及凭证录入模板.pdf
- 优化作业设计。实现减负增效.pdf
- 人教部编版六年级下册第11课《金色的鱼钩》课堂实录.pdf
- 人工智能的一些基础知识.pdf
- 主通风机倒机、倒电源安全技术措施.pdf
- 中职《英语基础教程》第一册Unit9-3.pdf
- 中考寄语(经典8篇).pdf
- 四川省成都市蓉城名校2023-2024学年高一下学期期末考试英语试卷(含答案).docx
- 辽宁省本溪市2024年初中毕业升学模拟考试生物试卷(含答案).docx
- 山西省朔州市右玉县2023-2024学年七年级下学期3月月考生物试卷(含答案).docx
- 新疆伊犁州2022-2023学年七年级下学期期末历史试卷(含答案).docx
- 衡阳县第四中学2023-2024学年高二下学期期末考试模拟数学试卷(含答案).docx
- 福建省泉州市南安市“四校联盟”2024届九年级下学期3月中考模拟(一)数学试卷(含答案).docx
- 山东省枣庄市市中区2024届九年级下学期中考二模数学试卷(含答案).docx
- 大理白族自治州民族中学2023-2024学年高一下学期5月期中检测物理试卷(含答案).docx
- 富顺第三中学校2024届九年级下学期中考适应性检测数学试卷(含答案).docx
- 新疆维吾尔自治区吐鲁番市2023-2024学年七年级下学期期末道德与法治试卷(含答案).docx
- 四川省平昌中学2023-2024学年高一下学期第一次月考数学试卷(含答案).docx
- 河北省沧州市2024年中考一模语文试卷(含答案).docx
- 海南省农垦中学2024届九年级下学期期中考试化学试卷B卷(含答案).docx
文档评论(0)