1、 1 学学 号:号: 课课 程程 设设 计计 题题 目目 按层次遍历二叉树按层次遍历二叉树 学学 院院 计算机科学与技术计算机科学与技术 专专 业业 计算机科学与技术计算机科学与技术 班班 级级 姓姓 名名 指导教师指导教师 2 1 问题描述及要求 . 4 1.1 问题描述 4 1.2 任务要求 4 2 开发平台及所使用软件 . 4 3 程序设计思路 . 5 3.1 二叉树存储结构设计 . 5 3.2 题目算法设计 . 5 3.2.1 建立二叉树 . 5 3.2.2 遍历二叉树 . 5 3.3.3 按要求格式输出已建立的二叉树 . 6 3.3 测试程序 6 4 调试报告 . 6 5 经验和体会
2、 . 6 6 源程序清单及运行结果 7 6.1 源程序清单 7 6.2 运行结果 . 9 7 参考文献 10 本科生课程设计成绩评定表 11 3 课程设计任务书课程设计任务书 题目题目: : 按层次遍历二叉树 初始条件:初始条件: 编写按层次顺序(同一层自左至右)遍历二叉树的算法。 (1)二叉树采用二叉链表作为存储结构。 (2)按严蔚敏数据结构习题集(C 语言版)p44 面题 6.69 所指定的格式输出建立 的二叉树。 (3)输出层次遍历结果。 (4)自行设计测试用例。 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 课程设计报告按学
3、校规定格式用 A4 纸打印(书写) ,并应包含如下内容: 1. 问题描述 简述题目要解决的问题是什么。 2. 设计 存储结构设计、主要算法设计(用类 C/C+语言或用框图描述) 、测试用例设计; 3. 调试报告 调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。 4. 经验和体会(包括对算法改进的设想) 5. 附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结 果要包含这些测试数据和运行输出。 说明:说明: 1. 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为 0 分。 2. 凡拷贝往年任务书或课程设计充数者,成绩一律无效,以凡拷贝往年任务书或
4、课程设计充数者,成绩一律无效,以 0 0 分记。分记。 时间安排:时间安排: 1第 17 周完成,验收时间由指导教师指定 2验收地点:实验中心 3验收内容:可执行程序与源代码、课程设计报告书。 指导教师签名:指导教师签名: 20132013 年年 6 6 月月 1414 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日 4 数据结构课程设计 按层次遍历二叉树 1 问题描述及要求问题描述及要求 1.1 问题描述问题描述 编写按层次顺序(同一层自左至右)遍历二叉树的算法,并将二叉树按指定格式输出。 (题 集 p44 面题 6.69 所指定的格式)指定格式如下: 图一:指
5、定输出格式 1.2 任务要求任务要求 编写按层次顺序(同一层自左至右)遍历二叉树的算法。 (1)二叉树采用二叉链表作为存储结构。 (2)按题集 p44 面题 6.69 所指定的格式输出建立的二叉树。 (3)输出层次遍历结果。 (4)测试用例自己设计。 2 开发平台及所使用软件开发平台及所使用软件 Windows 7.0 , Visual Studio2010 C F E A D B 5 3 程序设计思路程序设计思路 3.1 二叉树存储结构设计二叉树存储结构设计 struct BinTreeNode /二叉树用二叉链表存储 char data; /二叉树结点值为字符型 BinTreeNode*
6、leftchild; /左孩子指针 BinTreeNode*rightchild; /右孩子指针 3.2 题目算法设计题目算法设计 3.2.1 建立二叉树建立二叉树 void BinTree:creatBinTree(istream cin.get(item); if(item!= ) subTree=new BinTreeNode(item); creatBinTree(in,subTree-leftchild); creatBinTree(in,subTree-rightchild); else subTree=NULL; ; 3.2.2 遍历二叉树遍历二叉树 void BinTree:levelOrder(BinTree