- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计-带父亲节点的平衡二叉树的建立汇
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:数据结构课程设计
课程设计题目:带父亲节点的平衡二叉树的建立
院(系):计算机学院
专 业:网络工程
班 级:
学 号:
姓 名:夏媛
指导教师:郑志勇
目 录
1 课程设计介绍 1
1.1 课程设计内容 1
1.2课程设计要求 1
2 课程设计原理 2
2.1 课设题目粗略分析 2
2.2 原理图介绍 2
2.2.1 功能模块图 2
2.2.2 流程图分析 3
3 数据结构分析 8
3.1 存储结构 8
3.2 算法描述 8
4 调试与分析 10
4.1 调试过程 10
4.1程序执行过程 11
参考文献 12
附 录(关键部分程序清单) 13
1 课程设计介绍
1.1 课程设计内容
设计程序,建立带有父亲结点的平衡二叉树,系统主要功能是:从键盘上输入一整数序列,建立一颗平衡二叉树。
1.2课程设计要求
要能够形象方便的观察树的结构;
要能够形象的演示树的平衡过程;
课程设计报告必须符合课程设计报告规范;
提交合格的报告后,经指导老师测试程序后,课设完成。
2 课程设计原理
2.1 课设题目粗略分析
根据课设题目要求,我将整体程序分为四大模块,这四个模块相互独立,没有任何嵌套调用的情况,以下是四个模块的大体分析:
(1)判断模块:在插入一个关键字时,首先先对该关键字进行判断,如果该关键字已经存在则不插入,否则插入该关键字,调用函数InsertAVL()。
(2)左子树插入模块:如果判断完的新关键字插在左子树上,则对该以指针p所指结点为根的二叉树作左平衡旋转处理,本算法结束时,指针p指向新的根结点,调用函数LeftProcess()RightProcess()。DispBSTree().2 原理图介绍
主函数主要实现的功能是函数调用,主函数首先对输入的关键字进行判断,调用函数InsertAVL()LeftProcess(DispBSTree()DispBSTree().2.2 流程图分析
1.主函数流程图
主函数主要实现的功能是函数调用,主函数首先对输入的关键字进行判断,若该关键字在已建树中已经存在,则返回主函数接着对下一个关键字进行判断。若该关键字在已建树中不存在,则插入该数,当所有的关键字都插入完事之后,进行输出。流程图如图2.1所示。
图2.1 主函数流程图
2.判断模块流程图
若在平衡二叉排序树b中不存在和e有相同关键字的结点,则插入一个数据元素为e的新结点,并返回1,否则返回0。若因插入而使二叉排序树失去平衡,则作平衡旋转处理,布尔变量taller反映b长高与否。流程图如图2.2所示。
图2.2 判断模块流程图
3.左子树插入模块流程图
断完的新关键字插在左子树上,则对该以指针p所指结点为根的二叉树作左平衡旋转处理,本算法结束时,指针p指向新的根结针。流程图如图2.3所示。
图2.3左子树插入模块流程图
4.右子树插入模块流程图
断完的新关键字插在右子树上,则对该以指针p所指结点为根的二叉树作右平衡旋转处理,本算法结束时,指针p指向新的根结针。流程图如图2.4所示。
图2.4 右子树插入模块流程图
3 数据结构分析
3.1 存储结构
定义一个关键字类型的字符数组,其空间足够大,用来存放关键字。
3.2 算法描述
1.判断关键字算法如下:
{//若在平衡二叉排序树b中不存在和e有相同关键字的结点,则插入一个数据元素为e的新结点,
if(b==NULL) //原树为空,插入新结点,树长高,置taller为1
{b=(BSTNode*)malloc(sizeof(BSTNode));
b-key=e;
b-lchild=b-rchild=NULL;
b-bf=0;
taller=1;}
else
{if(e==b-key) //树中已存在和e有相同关键字的结点则不插入
{taller=0;
return 0;}
if(eb-key) //继续在*b的左子树中进行搜索
{if((InsertAVL(b-lchild,e,taller))==0) //未
您可能关注的文档
- 数学与应用数学毕业论文-应用主成分对学生综合素质进行评价汇.doc
- 数学与应用数学毕业论文-对数量幂等矩阵秩的研究汇.doc
- 数学与应用数学毕业论文-数域上的一元多形式环中的带余除法及其应用汇.doc
- 数学与应用数学毕业论文-有关三幂等矩阵秩等式的进一步探讨汇.doc
- 数学与应用数学毕业论文-有关除环上幂等矩阵的秩的等式的探讨汇.doc
- 数学与应用数学毕业论文-关于均值不等式的探讨汇.doc
- 数学与应用数学毕业论文-关于一类二次矩阵方程的解的进一步讨论汇.doc
- 数学与应用数学毕业论文-求方程的近似解方法及比较分析汇.doc
- 数学与应用数学毕业论文-浅谈我国双语教学的历史、现状与对策汇.doc
- 数学与应用数学毕业论文-浅析数学分析中的若干矛盾汇.doc
文档评论(0)