内蒙古科技大学
本科生课程设计论文
题目:数据结构课程设计
——二叉树遍历及应用学生姓名:
学号:
专业:计算机科学与技术
班级:
指导教师:兰孝文
2020年 1 月 3 日
内蒙古科技大学课程设计任务书课程名称数据结构课程设计
设计题目二叉树的遍历和应用
指导教师兰孝文时间2019.12.30——2020.1.3
一、教学要求
1. 掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力
2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能
3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力
4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
二叉树的遍历和应用
以二叉链表表示二叉树,在此基础上实现对二叉树的遍历和应用。
要求设计类(或类模板)来描述二叉树,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:
❖创建二叉树
❖输出二叉树
❖二叉树的先序、中序、后序遍历
❖二叉树的按层遍历
❖统计二叉树的叶子结点、计算二叉树的深度
并设计主函数测试该类(或类模板)。
三、设计要求及成果
1. 分析课程设计题目的要求
2. 写出详细设计说明
3. 编写程序代码,调试程序使其能正确运行
4. 设计完成的软件要便于操作和使用
5. 设计完成后提交课程设计报告
四、进度安排
资料查阅与讨论(1天)
系统分析(1天)
系统的开发与测试(2天)
编写课程设计说明书和验收(1天)
五、评分标准
1. 根据平时上机考勤、表现和进度,教师将每天点名和检查
2. 根据课程设计完成情况,必须有可运行的软件。
3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
4. 根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问
六、建议参考资料
1.《数据结构(C语言版)》严蔚敏、吴伟民主编清华大学出版社2013
2.《数据结构课程设计案例精编(用C/C++描述)》,李建学等编著,清华大学出版社 2010 3.《数据结构:用面向对象方法与C++语言描述》,殷人昆主编,清华大学出版社 2012
目录
1. 功能设计 (1)
(1)创建二叉树 (1)
(2)先序递归遍历 (1)
(3)中序递归遍历 (1)
(4)后序递归遍历 (1)
2. 算法流程图 (2)
(1)创建二叉树 (2)
(2)先序递归遍历 (3)
(3)中序递归遍历 (4)
(4)后序递归遍历 (5)
3.问题描述 (6)
4. 详细设计 (7)
(1)设计思想 (7)
(2)设计表示 (7)
(3)函数接口说明: (8)
(4)函数调用关系如图所示: (8)
(5)实现注释 (9)
5. 运行结果截图 (10)
6. 总结 (12)
附录 (13)
1.功能设计
(1)创建二叉树
利用二叉树模板类,创建二叉树时产生类模板,调用类的构造函数来创建,修改二叉树的结构时,可以调用赋值语句直接把广义表转换成二叉树。相关类或函数如下:class BinaryTree;
BinaryTree();
BinaryTree<T>& operator=(const string& str);
(2)先序递归遍历
若二叉树为空,则空操作;否则(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。相关函数如下:
void PreOrderTraverse(const BinaryTreeNode<T>* p) const;
(3)中序递归遍历
若二叉树为空,则空操作;否则(1)中序遍历左子树;(2)访问根结点;(3)中序遍历右子树。相关函数如下:
void InOrderTraverse(const BinaryTreeNode<T>* p) const;
(4)后序递归遍历
若二叉树为空,则空操作;否则(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。相关函数如下:
先序中序后序遍历二叉树void PostOrderTraverse(const BinaryTreeNode<T>* p) const;
2.算法流程图(1)创建二叉树
图2.1 创建二叉树
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论