资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计题目:二叉排序树的插入、删除算法沈阳航空航天大学课程设计报告2沈阳航空航天大学课程设计报告 第 1 章 需求分析41 需求分析了解二叉排序树组成与其性质,知道其构成。创建一个二叉排序树,并对其先序遍历,输出。然后根据二叉排序树性质,删除,插入,查找其结点与叶子,然后先序遍历输出。内容:1. 给定一组关键字,生成一棵二叉排序树;2. 删除该二叉排序树中的指定节点,删除后二叉排序树性质不发生变化;3. 用直观、易于理解的形式来演示二叉排序树的插入、删除过程。要求: 1、独立完成系统的设计、编码和调试。2、系统利用 C 语言实现。3、按照课程设计规范书写课程设计报告。沈阳航空航天大学课程设计报告 第 2 章 系统设计 52 系统设计2.1 数据结构设计typedef struct Treeint data;struct Tree *lchild, *rchild;Tree, *PTree;定义结构体 Tree,data:数据,*lchild:指针左孩子,*rchild:指针右孩子*PTree 代表结构体的指针2.2 函数设计本系统所设计的函数见表 2.1。表 2.1 函数列表函数名称 函数原型 功能描述main void main(); 系统主程序Insert int Insert(PTree &p, int k) 将数据挨个插入到二叉排序树中Tree *Create Tree *Create(int A, int n) 创建新的二叉排序树search int search(Tree *T, int e, Tree *f, PTree &p) 查找二叉排序树中的数据sert void sert(PTree &T, int e) 在二叉树中插入结点DeleteTree int DeleteTree(PTree &T, int e) 删除二叉树中的结点f void f(PTree &p) 删除结点并重新排序preorder void preorder(Tree *T) 遍历先序二叉排序树本系统函数的调用关系见图 2.1。沈阳航空航天大学课程设计报告 第 2 章 系统设计 6mainTree *CreateInsertsearch图 2.1 函数调用关系沈阳航空航天大学课程设计报告 第 2 章 系统设计 72.3 关键流程2.3.1 系统主流程scanf_s(%d, &j) != EOFswitch( j)case1 case2 case4case3return0是否开 始结 束图 2.2 系统主流程沈阳航空航天大学课程设计报告 第 2 章 系统设计 82.3.2 创建函数流程p = NULLp=(Tree*)malloc(sizeof(Tree);p-data = k;p-lchild = p-rchild = NULL;k= -datakdatareturn0Insert(p-lchild, k) Insert(p-rchild, k)是是是否否否开 始结 束图 2.3 创建函数主流程沈阳航空航天大学课程设计报告 第 2 章 系统设计 92.3.3 插入函数流程!search(T,e, NULL, p)s = (PTree)malloc(sizeof(Tree);s-data = e;s-lchild = s-rchild = NULL;p=0edatap-lchild = s T = sp-rchild = s是否否是是否开 始结 束图 2.4 插入函数主流程沈阳航空航天大学课程设计报告 第 2 章 系统设计 102.3.4 删除函数流程T=0e= T-dataedataDeleteTree(T-lchild, e) DeleteTree(T-rchild, e) f(T) return1否否否是是是开 始结 束图 2.5 删除函数主流程沈阳航空航天大学课程设计报告 第 3 章 调试分析113 调试分析(1) 指针问题 问题描述:输入数据时,总不能得到结果。 问题分析:在建立二叉树函数定义中,是对指针的值进行修改 解决方法:使用指向指针的指针(2) 字符问题 问题描述:试验中经常出现前后字符不一致的情况。 问题分析:编写时不够自习,遇到比较长的程序,容易出错。 解决方法:勤加练习,认真仔细检查。(3) 问题 问题描述:在类似(*T)-key=key, 没加括号,程序不能运行。 问题分析:不够仔细。 解决方法:检查程序,注意细节。沈阳航空航天大学课程设计报告 第 4 章 测试及运行结果124 测试及运行结果输入 6 个数据:19 95 8 17 7 22 先序遍历后的结果:19 8 7 17 95 22插入结点 56,输出先序遍历结果:19 8 7 17 95 22 56沈阳航空航天大学课程设计报告 第 4 章 测试及运行结果 13选择删除的结点:7 输出先序遍历结果:19 8 17 95 22 56沈阳航空航天大学课程设计报告 参考文献 14参考文献1 严蔚敏 吴伟民 数据结构(C 语言版):清华大学出版社2 王敬华 林萍 张清国 C 语言程序设计教程(第二版):清华大学出版社3 韦斯 数据结构与算法分析(C 语言描述):机械工业出版社4 王宏生.数据结构 .北京:国防出版社。5 滕国文 数据结构课程设计:清华大学出版社16课程设计总结:指导教师评语:指导教师(签字): 年 月 日课程设计成绩
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号