




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 号: 课 程 设 计题 目按层次遍历二叉树学 院计算机科学与技术专 业计算机科学与技术班 级姓 名指导教师年月日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 按层次遍历二叉树 初始条件:编写按层次顺序(同一层自左至右)遍历二叉树的算法。(1)二叉树采用二叉链表作为存储结构。(2)按严蔚敏数据结构习题集(C语言版)p44面题6.69所指定的格式输出建立的二叉树。(3)输出层次遍历结果。(4)自行设计测试用例。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)课程设计报告按学校规定格式用A4纸打印(书写),并应包含如下内容: 1. 问题描述简述题目要解决的问题是什么。2. 设计存储结构设计、主要算法设计(用类C/C+语言或用框图描述)、测试用例设计;3. 调试报告调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。4. 经验和体会(包括对算法改进的设想)5. 附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这些测试数据和运行输出。说明:1. 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。2. 凡拷贝往届任务书或课程设计充数者,成绩一律无效,以0分记。时间安排:1、第18周完成。2、7月2日8:30时到实验中心检查程序、交课程设计报告、源程序(U盘)。指导教师签名: 2010年6月22日系主任(或责任教师)签名: 年 月 日数据结构课程设计 一按层次遍历二叉树1 问题描述及要求1.1问题描述编写按层次顺序(同一层自左至右)遍历二叉树的算法。1.2任务要求编写按层次顺序(同一层自左至右)遍历二叉树的算法。(1)二叉树采用二叉链表作为存储结构。(2)按题集p44面题6.69所指定的格式输出建立的二叉树。(3)输出层次遍历结果。(4)测试用例自己设计。2 开发平台及所使用软件Windows 7.0 , Visual C+6.03 程序设计思路3.1二叉树存储结构设计typedef char ElemType; /二叉树结点值的类型为字符型typedef struct BiTNode /二叉树的二叉链表存储表示 ElemType date; struct BiTNode *lchild,*rchild; /左右孩子指针 BiTNode,*BiTree;3.2 题目算法设计3.2.1 建立二叉树void CreateBinTree(BinTree &T) /按先序次序输入,构造二叉链表表示的二叉树Tchar ch; ch=getchar(); /输入函数。 if(ch= ) T=NULL; /输入空格时为空else if(!(T=(BiTNode *)malloc(sizeof(BiTNode) printf(%c 结点建立失败!) ;T-data=ch; CreateBinTree(T-lchild); CreateBinTree(T-rchild); 3.2.2 遍历二叉树void LevleOrder(BinTree T) /从第一层开始,从左到右 BinTree Queuemax,p; /用一维数组表示队列,front和rear分别表示队首和队尾指针int front,rear; front=rear=0; if (T) /若树非空 Queuerear+=T; /根结点入队列 while (front!=rear) / 队列非空 p=Queuefront+; / 队首元素出队列,并访问这个结点 printf(%c,p-data); if (p-lchild!=NULL) Queuerear+=p-lchild; /左子树非空,入队列 if (p-rchild!=NULL) Queuerear+=p-rchild; 3.2.3 按要求格式输出已建立的二叉树 void Print_BinTree(BinTree T,int i ) / i表示结点所在层次,初次调用时i=0if(T-rchild) Print_BinTree(T-rchild,i+1); /函数递归for(j=1;jdata); /打印T元素,换行if(T-lchild) Print_BiTree(T-lchild,i+1);3.3 测试程序图1:测试二叉树 如图所示二叉树,按先序遍历顺序输入,AB#D#CE#F#。其中”#”代表空格,理论上按层次遍历的结果应该是”CFEADB”,二叉树是:A为根节点,A左孩子是B,右孩子是C,B的左孩子为空,右孩子为D,C的左孩子为E,右孩子为空,E的左孩子为空,右孩子为F。根据以下程序运行结果(见图2)可知,程序正确运行4 调试报告在建立二叉树时,输入的格式一定要正确,没有孩子的要用空格表示,在测试用例中,F没有孩子,要用两个空格表示,如果输入“AB#D#CE#F”则没有输出结果。5 经验和体会本程序的建立和遍历二叉树的程序都比较简单,关键在于按要求打印二叉树。起初一直找不到合适的方法按题目要求打印二叉树,在和同学讨论了很久之后终于有了思路。打印的格式中,最上层的节点是右子树层次最高的,于是就可以用递归调用的方式实现。递归次数最高的就是输出最顶置的节点。在调试程序的时候也出现了问题,起初没有在意输入方式对程序运行结果的影响,导致程序无法运行,在检查了很久之后终于找到了问题的所在,对输入进行了改正,得到了正确的结果 6源程序清单及运行结果6.1源程序清单#include #include #define max 100 typedef char ElemType; typedef struct BiTNode ElemType data; struct BiTNode *lchild,*rchild; BiTNode,*BinTree;/建立二叉树void CreateBinTree(BinTree &T) char ch; ch=getchar(); if(ch= ) T=NULL;else if(!(T=(BiTNode *)malloc(sizeof(BiTNode) printf(%c 结点建立失败!) ;T-data=ch; CreateBinTree(T-lchild); CreateBinTree(T-rchild); /遍历二叉树void LevleOrder(BinTree T) BinTree Queuemax,p; int front,rear; front=rear=0; if (T) Queuerear+=T; while (front!=rear) p=Queuefront+; printf(%c,p-data); if (p-lchild!=NULL) Queuerear+=p-lchild; if (p-rchild!=NULL) Queuerear+=p-rchild; /按要求输出二叉树void Print_BinTree(BinTree T,int i ) /本题的关键所在, i表示结点所在层次,初次调用时i=0 if(T-rchild) Print_BinTree(T-rchild,i+1); /本题的难点,函数递归来建立层次。 for(int j=1;jdata); /打印T元素,换行 if(T-lchild) Print_BinTree(T-lchild,i+1);int main()BinTree T;int i=0; printf(n创建二叉树n); CreateBinTree (T); printf(n层次遍历二叉树 并输出遍历结果n); LevleOrder(T); printf(n按树形打印输出二叉树n); Print_BinTree(T, i); return 0;6.2 运行结果图2:运行结果7 参考文献 1数据结构(C语言版),严蔚敏,吴伟民编著,出版社:清华大学出版社,出版或修订时间:1997年4月2数据结构习题集(C语言版),严蔚敏,吴伟民,米宁编著,清华大学出版社,出版或修订时间:1999年2月本科生课程设计成绩评定表班级:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分行业绩考核规定
- 家电维修管理体系规范
- 在党旗下擦亮人民教师的精神名片教师节专题党课
- 2025浙江温州瑞安市司法局编外人员招聘1人笔试参考题库附答案解析
- 动物遗传多样性研究总结
- 2025云南省昭通市建飞中学招聘教师笔试备考试题及答案解析
- 考研英语听力:如何迅速提高水平
- 农村新型社会组织发展模式分析
- 2025西北工业学校教师招聘笔试含答案
- 榨汁机贷款量维修规定
- 临床常用他评量表
- 2025学年度第一学期政史地教研组工作计划
- 马龙课件简短
- 2024-2025学年广东省清远市高三(上)质检数学试卷(一)(含答案)
- 2025年高考作文素材积累之刘擎《西方现代思想讲义》大纲梳理
- 《中小学德育工作指南》全文
- (新版)海事集装箱装箱检查员考试题库及答案
- 车位租赁协议
- 云南省工程质量安全手册实施细则(试行)安全管理行为分册
- 2024 体育生规章制度
- 幼教培训课件:《幼儿园科学核心经验与活动指导》
评论
0/150
提交评论