- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
平衡二叉树
平衡二叉树
PAGE
数学与计算机学院
课程设计说明书
课 程 名 称: 算法设计与分析-课程设计
课 程 代 码: 7106620
题 目: 平衡二叉树
年级/专业/班:
学 生 姓 名:
学 号:
开 始 时 间: 2010 年 12 月 27 日
完 成 时 间: 2011 年 01 月 07 日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书撰写质量(45)
总 分(100)
指导教师签名: 年 月 日
目 录
TOC \o 1-2 \h \z 1 引 言 1
1.1 问题的提出 1
1.2国内外研究的现状 1
1.3任务与分析 1
2 程序的主要功能 1
2.1创建功能 1
2.2查询功能 2
2.3 插入功能 2
2.4删除功能 2
3 程序运行平台 2
4 总体设计 3
5 模块分析 3
5.1创建平衡二叉树模块 3
5.2 查询结点信息模块 6
5.3 插入结点模块 7
6.4 删除结点模块 9
6 系统测试 11
7 结论 14
致谢 16
参考文献 17
附录 18
摘 要
本论文主要是基于平衡二叉树的各种最基本操作来实现用平衡二叉树来查找数据。对于平衡二叉树最大的应用就是来查找数据,因为它的查找的时间效率为logn,因此就存在要创建平衡二叉树、对其进行插入、删除这三种基本操作。
在本论文中实现了创建和修改平衡二叉树。其中最主要的就是对平衡二叉树进行插入操作,对于插入会破坏平衡,所以插入之后必须对树重新调整以保证其两边平衡。这就包括左右平衡处理以及其中包含的左右旋操作,再用递归来实现插入数据。对于删除则主要运用的也是递归算法。
在平衡二叉树上进行查找的过程和排序树相同,因此,在查找过程中和给定值进行比较的关键字个数不超过树的深度,这也是它时间效率高的原因。平衡二叉树其实是二叉查找树以及次优二叉树的一次优化,因为平衡二叉树是要求两边的子树的树高相差最多1.因此特别是在数据库中的应用相当广泛。
关键词:插入、删除、递归、左旋、右旋、左平衡、右平衡
平衡二叉树
平衡二叉树
PAGE
-
课程设计题目(改为黑色)
课程设计题目(改为黑色)
1 引 言
基于平衡二叉树的创建、插入、删除、查找问题。
1.1 问题的提出
通过对二叉排序树的时间效率分析可知其平均查找长度和logn是等数量级的。然而在某些情况下(有人研究证明,这种情况出现的概率约为46.5%),尚需在构成二叉排序树的过程中进行“平衡化”处理,因此就提出了平衡二叉树的概念,因此也就导致平衡二叉树的创建、插入、删除、查找问题。
1.2国内外研究的现状
当前对平衡二叉树的研究都基本上是对其的扩展和改进,像比较复杂的B-树、B+树、键树、2-3树等。
1.3任务与分析
任务:实现平衡二叉树的创建,能够对所创建的平衡二叉树进行动态插入、删除操作,最后实现用平衡二叉树来查找数据。
分析:对于平衡二叉树的创建,就是依靠对一个空树进行插入节点,其实也就是平衡二叉树的插入结点。而平衡二叉树的插入则非常的复杂,每插入一个结点必须判断当前的二叉树是否还平衡。这就分成了四种情况:(1)当BBST是空树时,则可直接插入将新结点e作为BBST的根结点,树的深度加1.。(2)当e的关键字和BBST的根结点的关键字相等,则不进行插入。(3)若e的关键字小于BBST的根结点的关键字,而且在BBST的左子树中不存在和e有相同关键字的节点,则将e插入BBST的左子树上,并且当插入之后的左子树的深度增加1时,分别就下面不同德情况处理:① BBST的根结点的平衡因子为-1:则将根结点的平衡因子更改为0,BBST的深度不变;②BBST的根结点的平衡因子为0:则将根结点的平衡因子更改为1,BBST的深度增1;③BBST的根结点的平衡因子为1,则需进行单向右旋平衡处理,并且在右旋平衡处理,并且在右旋处理之后,将结点和其右子树根结点的平衡因子更改为0,树的深度不变;④
2 程序的主要功能
2.1创建功能
输入一组数据,按关键字,建立一棵二叉排序树的平衡二叉树。
2.2查询功能
输入一个数据,作为关键字,在已经建立好的平衡二叉树中进行查询,结点存在则输出查询成功,否则输出查询失败。
2.3 插入功能
文档评论(0)