电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

计算机科学学院数据结构课程设计报告

9页
  • 卖家[上传人]:M****1
  • 文档编号:472171724
  • 上传时间:2023-12-31
  • 文档格式:DOCX
  • 文档大小:109.56KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、计算机科学学院数据结构课程设计报告平衡二叉树操作学生姓名:学号:班级:指导老师:报告日期:需求分析1建立平衡二叉树并进行创建、查找、插入、删除等功能。2设计一个实现平衡二叉树的程序,可进行创建、查找、插入、删除等操作,实现动态的输入数据,实时的输出该树结构。矚慫润厲钐瘗睞枥庑赖賃軔朧。3测试数据:自选数据2.概要设计1.抽象数据类型定义:typedef struct BSTNode int data;int bf;/节点的平衡因子struct BSTNode *lchild,*rchild;/左右孩子指针BSTNode,*BSTree;void CreatBST(BSTree &T);/ 创建平衡二叉树void R_Rotate(BSTree &p);/对以 *p为根的二叉排序树作左旋处理聞創沟燴鐺險爱氇谴净祸測樅。void L_Rotate(BSTree &p);/对以 *p为根的二叉排序树作左旋处理残骛楼諍锩瀨濟溆塹籟婭骒東。void LeftBalance(BSTree &T);/对以指针所指结点为根的二叉树作左平衡旋转处理酽锕极額閉镇桧猪訣锥顧荭钯。void RightBala

      2、nce(BSTree &T);/对以指针所指结点为根的二叉树作右平衡旋转处理彈贸摄尔霁毙攬砖卤庑诒尔肤。bool InsertAVL(BSTree &T,int e,bool &taller);/插入结点 e 謀荞抟箧飆鐸怼类蒋薔點鉍杂。bool SearchBST(BSTree &T,int key);/查找元素 key 是否在树 T 中 厦礴恳蹒骈時盡继價骚卺癩龔。void LeftBalance_div(BSTree&p,int&shorter);/删除结点时左平衡旋转处理茕桢广鳓鯡选块网羈泪镀齐鈞。void RightBalance_div(BSTree &p,int &shorter);/删除结点时右平衡旋转处理鹅娅尽損鹌惨歷茏鴛賴縈诘聾。void Delete(BSTree q,BSTree&r,int &shorter);/删除结点 籟丛妈羥为贍偾蛏练淨槠挞曉。int DeleteA VL(BSTree &p,int x,int &shorter);/ 平衡二叉树的删除操作 預頌圣鉉儐歲龈讶骅籴買闥龅。void PrintBST(BSTree T,int m);/ 按树状

      3、打印输出二叉树的元素渗釤呛俨匀谔鱉调硯錦鋇絨钞。主程序的流程请输入操作的选项编号(1-5)1 / 131-创建平衡二叉树2-查找3-插入4-删除5-结束3.各模块之间的层次调用详细设计主模块退出1.以平衡二叉树的插入和平衡化为例:bool InsertAVL(BSTree &T,int e,bool &taller)显示主输入数平衡化查插删/若存在菜平单衡的二叉排序据树元素 T 中不存在和 e 有相同关键字找的节点,则插入入一个数据元除素为 e /的新结点,并返回 1,否者返回 0。若因插入而使二叉排序树失去平衡,则作平衡旋转理,/布尔变量 taller 反映 T 长高与否。if(!T)/ 插入新结点,树 “长高 ”,置 taller输出 为 trueT = (BSTree)malloc(sizeof(BSTNode);T-data = e;T-lchild = T-rchild =NULL;T-bf = EH; taller = true;elseif(EQ(e,T-data)/ 树中已存在和有相同关键字的结点铙誅卧泻噦圣骋贶頂廡缝勵罴。 taller = false;printf(

      4、 已存在相同关键字的结点 n); return 0; / 则不再插入 擁締凤袜备訊顎轮烂蔷報赢无。if(LT(e,T-data)/ 应继续在 *T 的左子树中进行搜索贓熱俣阃歲匱阊邺镓騷鯛汉鼉。if(!InsertA VL(T-lchild,e,taller) return 0;/ 未插入if(taller)/ 已插入到 *T 的左子树中且左子树坛摶乡“长高 ”囂忏蒌鍥铃氈淚跻馱釣。switch(T-bf)/ 检查 *T 的平衡度case LH:/ 原本左子树比右子树高,需要作左平衡处理LeftBalance(T); taller = false; break;case EH:/ 原本左子树、右子等高,现因左子树增高而使树增高T-bf = LH; taller = true; break;case RH:/ 原本右子树比左子树高,现左、右子树等高2 / 13T-bf = EH; taller = false; break;/switch(T-bf)/ifelse/应继续在 *T的右子树中进行搜索蜡變黲癟報伥铉锚鈰赘籜葦繯。if(!InsertA VL(T-rchild,e,taller

      5、) return 0;/未插入if(taller)/ 已插入到買鲷鴯*T 的右子树中且右子树 “长高 ”譖昙膚遙闫撷凄届嬌擻。switch(T-bf)/ 检查 *T的平衡度case LH:/ 原本左子树比右子树高,现左、右子树等高T-bf = EH; taller = false; break;case EH:/ 原本左子树、右子等高,现因右子树增高而使树增高T-bf = RH; taller = true; break;case RH:/ 原本右子树比左子树高,需要作右平衡处理RightBalance(T); taller = false; break;/switch(T-bf)/else/elsereturn 1;/InsertAVL2.说明:执行完输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型量赋值时,会将缓冲区当成数据存入变量中,所以要在某些输入语句后面加getchar函数。4.调试分析1.遇到的问题:(1)对平衡二叉树的删除的算法设计程序存在很大问题。删除节点后需要对新的排序树平衡化,改变节点的信息,使之形成一棵新的平衡二叉树。 綾镝鯛駕櫬鹕踪韦辚糴飙钪麦。(2)主函

      6、数中的实参和子函数中的实参相等,造成调用该子函数时,虽然没有错误,但其功能不能正确的实现。改变该变量后程序成功实现各种功能。驅踬髏彦浃绥譎饴憂锦諑琼针。( 3)一些逻辑逻辑运算符书写不正确,造成实现的功能不正确或程序死循环。2.收获:(1)对平衡二叉树的构造、插入和删除的算法思想有了更清楚的认识,能够对平衡二叉树进行创建、调平、插入、删除等操作,实现动态的输入数据,实时的输出该树结构.猫虿驢绘燈鮒诛髅貺庑献鵬缩。(2)对多个程序的调用5.用户使用说明1.了解程序清单上给出的功能,并根据提示依次进行操作。2.创建二叉树,输入的数据元素为整数,当输入-123 时,停止创建。并显示平衡二叉树的中3 / 13序凹入树形图。3.查找(输入你要查找的元素)。4.插入(输入要插入的数据元素,并输出)5.删除(删除指定的元素,并输出)6.结束说明:其中每一个功能实现后都会提示是否继续:选择y 继续,否则,终止。6.测试结果1.创建平衡二叉树: (中序凹入输出)2.查找查找成功或失败时:3.插入4.删除 ,结束4 / 137.附录源代码:#include#include#define LH +1#define EH 0#define RH -1#define NULL 0typedef struct BSTNode int data;int bf;struct BSTNode *lchild,*rchild;BSTNode,*BSTree;void CreatBST(BSTree &T);void R_Rotate (BSTree &p);void L_Rotate(BSTree &p);void LeftBalance(BSTree &T);void RightBalance(BSTree &T);bool InsertAVL(BSTree &T,int e,bool &taller);bool SearchBST(BSTree &T,int key);void LeftBalance_div(BSTree &p,int &shorter);void RightBalance_div(BSTree &p,int &shorter);void Delete(

      《计算机科学学院数据结构课程设计报告》由会员M****1分享,可在线阅读,更多相关《计算机科学学院数据结构课程设计报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.