PAGE 1
黄淮学院
“数据结构”课程设计
报告
系 (院): 信息工程学院
设计题目: 二叉排序树的实现
专业班级: 软件工程15级
小组成员: 唐二虎、赵梦娟、贾月
指导教师: 汪洋
完成时间: 2016.12.27
二叉排序树的实现
1.设计任务
实现二叉排序树,包括生成、插入,删除;
对二叉排序树进行先根、中根、和后根非递归遍历;
每次对树的修改操作和遍历操作的显示结果都需要在用树的形状表示出来。
分别用二叉排序树和数组去存储一个班(50人以上)的成员信
息(至少包括学号、姓名、成绩3项),对比查找效率,并说明
为什么二叉排序树效率高(或者低)。
2.程序设计流程图(设计思想)
无结点x存在含x的结点,则删除该结点,并作中序遍历找到该节点x输入元素
无结点x
存在含x的结点,则删除该结点,并作中序遍历
找到该节点x
输入元素x,查找二叉排序树T
对二叉排序树T作中序遍历,并输出结果
二叉链表作存储结构和顺序表作存储结构
输入数列L, 以回车(‘\\n’)为输入结束标志生成二叉排序树T;
详细设计思想:
建立二叉排序树采用边查找边插入的方式。查找函数采用递归的方式进行查找。如果查找到相等的则插入其左子树。然后利用插入函数将该元素插入原树。
对二叉树进行中序遍历采用递归函数的方式。在根结点不为空的情况下,先访问左子树,再访问根结点,最后访问右子树。
删除结点函数,采用边查找边删除的方式。如果没有查找到,进行提示;如果查找到结点则将其左子树最右边的节点的数据传给它,然后删除其左子树最右边的节点。
3.函数模块:
3.1.主函数main模块功能
1.通过bstreeCreatTree()操作建立二叉排序树。
2.在二叉排序树t中通过操作bstreeInsertBST(bstreet,int
key,nametypename,double grade)插入一个节点。
3. 从二叉排序树t中通过操作void Delete(bstreep)删除任意节点。
4.在二叉排序树t中通过操作bstnode *SearchBST(bstreet,keytype key)查找节点。
5.在二叉排序树t中通过操作p=SearchBST(t,key)查询,并修改节点信息
6.非递归遍历二叉排序树。
7.定义函数void compare()对数组和二叉排序树的查找效率进行比较比较。
3.2创建二叉排序树CreatTree模块
从键盘中输入关键字及记录,并同时调用插入函数并不断进行插入。最后,返回根节点T。
3.3删除模块:
二叉排序树上删除一个阶段相当于删去有序系列中的一个记录,只要在删除某个节点之后依旧保持二叉排序树的性质即可。假设二叉排序树上删除节点为*p(指向节点的指针为p),其双亲节点为*f(节点指针为f)。若*p节点为叶子节点,则即左右均为空树,由于删去叶子节点不破坏整棵树的结构,则只需修改其双亲节点的指针即可;若*p节点只有左子树或只有右子树,此时只要令左子树或右子树直接成为其双亲节点*f的左子树即可;若*p节点的左子树和右子树均不为空,其一可以令*p的左子树为*f的左子树,而*p的右子树为*s的右子树,其二可以令*p的直接前驱(或直接后继)替代*p,然后再从二叉排序树中删去它的直接前驱(或直接后继)。在二叉排序树中删除一个节点的算法为
voidDeleteData(bstreet,keytype key)
若二叉排序树t中存在关键字等于key的数据元素,则删除该数据元素节点,并返回TRUE,否则返回FALSE。
3.4插入模块
二叉排序树是一种动态树表,其特点是树的结构通常不是一次生成的,而是在查找的过程中,当树中不存在关键字等于给定值得节点时在进行插入。新插入的节点一定是一个新添加的叶子节点,并且是查找不成功时查找路径上访问的最后一个节点的左孩子或右孩子的节点。一个无序系列可以通过构造一棵二叉排序树而变成一个有序系列,构造树的过程即为对无序系列进行排序的过程, 并且每次插入的节点都是二叉排序树上新的叶子节点,则在进行插入操作时,不必移动其他节点,仅需改变某个节点的指针由空变为非空即可。二叉排序树的插入算法为
bstreeInsertBST(bstreet,intkey,nametype
您可能关注的文档
最近下载
- 山桐子种植加工、旅游项目可行性研究报告商业计划书.docx VIP
- 山桐子种植及种苗培育种植加工可行性研究报告申请备案.doc VIP
- 和田地区2026年度地直机关公开遴选公务员、事业单位公开选聘工作人员备考题库及完整答案详解1套.docx VIP
- 山桐子合作种植协议合同.docx VIP
- 2025年香氛未来趋势报告-英敏特.docx VIP
- 报告正文2014年太阳绿宝.pdf VIP
- 2025年高考:云南物理--试题及答案.pdf VIP
- 广东省深圳市宝安区2025-2026学年五年级上学期期末学业质量评估语文试卷.docx VIP
- (2025)山桐子产业开发生产建设项目可行性研究报告(一).docx VIP
- 2024-2025学年广东省东莞市统编版三年级上册期末考试语文试卷.pdf VIP
原创力文档

文档评论(0)