数据结构课程方案小组报告模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计
----小组设计报告
专业:计算机科学与技术
班级:计算机科学与技术06**
组号:201
组长姓名<学号):张三(060******>
副组长姓名<学号):张三(060******>
组员姓名<学号):张三(060******>
指导教师:冯向阳、陈志良
日期:08年1月10日至08年1月20日
目录
1组内成员贡献表
表1-1 组内成员贡献表
2 课程设计目的
1、学习获取知识的方法;
2、提高发现问题、分析问题和解决实际问题的能力;
3、加强创新意识和创新精神;
4、加强团队的分工与合作;
5、掌握面向实际背景思考问题的方法。
3 课程设计内容和要求
内容:
第一章前言
第二章航班信息的查询与检索
第三章树结构的应用
第四章图结构的应用
第五章大数四则运算
第六章综合应用——图书管理信息系统的设计和实现
要求:
完成第2章、第3章中每章2个设计任务中的至少一个任务。
在完成个人任务1的基础上,完成第4章2个设计任务中的至少一个任务。
每人必须在完成个人任务的基础上提交个人任务的设计报告,内容包括:任务名称、目的、具体内容、需求分析、概要设计、主要代码分析、测试结果、收获与体会。无论是个人任务还是小组任务希望各小组团队合作,小组成员之间应互相讨论,互相启发。
4 任务完成情况
任务完成情况介绍,如表3-1.<仅供参考,请根据实际完成情况填写)
5 设计名称
5.1 设计目的
根据内容填写
5.2 设计内容及要求
本程序用VC编写,完成以下功能:根据内容填写
5.3 需求分析
下列仅供参考<请根据内容填写)
本程序用VC编写,完成二叉树的生成二叉链表、递归中序遍历、非递归中序遍历、层次遍历、计算二叉树的深度及叶子个数、建立线索二叉树并实现中序遍历等功能,并且需要一个菜单让用户自主选择执行的功能。
①输入的形式和输入值的范围:
元素输入时,元素的值都是char型,以“#”为空结点。
②输出的形式:
在每次选择菜单后,都输出相应的结果,并且询问下次操作的工程。
③程序所能达到的功能:
完成单链表的二叉树的生成二叉链表、递归中序遍历、非递归中序遍历、层次遍历、计算二叉树的深度及叶子个数、建立线索二叉树并实现中序遍历。每次操作结束后,都会有菜单方便用户进行下一步的操作。
④测试数据:
A.菜单显示为:
-----------------------菜单---------------------------
A----------------------二叉树建立
B----------------------递归中序遍历
C----------------------非递归中序遍历
D----------------------层次遍历
E----------------------求二叉树的深度
F----------------------求二叉树的子叶个数
G---------------------线索二叉树的建立及遍历
H----------------------退出
请输入您要测试的工程:
B.二叉树建立
»选择A或a
»显示 “请按先序建立二叉树的结点序列<以“#”为空结点):”
»输入 ABC##DE##F##G##
»输出完成创建二叉树!
C.递归中序遍历
»选择B或b
»显示 “该二叉树的递归中序遍历序列为:”
»输出 C B E D F A G
D.非递归中序遍历
»选择C或c
»显示 “该二叉树的非递归中序遍历序列为:”
»输出 C B E D F A G
E.层次遍历
»选择D或d
»显示 “该二叉树层次遍历序列为:”
»输出 C B E D F A G
F.求二叉树的深度
»选择E或e
»显示 “该二叉树的深度为:”
»输出 4
G.求二叉树的子叶个数
»选择F或f
»显示 “该二叉树的子叶个数为:”
»输出 4
H.线索二叉树的建立及遍历
»选择G或g
»显示 “请按先序线索二叉树输入元素:”
»输入 ABC##DE##F##G##
»输出完成创建线索二叉树!
»显示 “二叉树的线索化:”
»输出线索化成功!
»显示 “线索二叉树的中序遍历:”
»输出 C B E D F A G
I.退出程序
»选择7
»退出当前程序
5.4 概要设计
1)为了实现上述程序功能,需要定义单链表的抽象数据类型:下列仅供参考<请根据内容填写)
CreateBinTree<&T)
操作结果:构造一个先序存储的二叉树T,以“#”为空结点
Inorder 初始条件:二叉树T已存在 操作结果:将二叉树T按中序遍历 InorderN 初始条件:二叉树T已存在 操作结果:将二叉树T按中序遍历 print_cengci 初始条件:二叉树T已存在 操作结果:将二叉树T按层次遍历 PostTreeDepth 初始条件:二叉树T已存在 操作结果:将二叉树T的深度输出 leaf 初始条件:二叉树T已存在 操作结果:将二叉树T的叶子个数输出 CreateBiThrTree 操作结果:构造一个先序存储的线索二叉树Tr,以“#”为空结点 InOrderThreading 初始条件:线索二叉树Tr已存在 操作结果:将二叉树Tr线索化 InOrderTraverse_Thr 初始条件:线索二叉树Tr已存在 操作结果:将线索二叉树Tr输出 2)本程序包含9个函数:下列仅供参考<请根据内容填写) ①主函数main(> ②初始化二叉树函数CreateBinTree (> ③递归中序遍历二叉树函数Inorder (> ④非递归中序遍历二叉树函数Inorder N(> ⑤层次遍历二叉树函数print_cengci (> ⑥计算二叉树深度函数PostTreeDepth (> ⑦计算二叉树叶子个数函数leaf l (> ⑧初始化线索二叉树函数CreateBiThrTree (> ⑨二叉树线索化函数InOrderThreading (> ⑩线索二叉树输出函数 InOrderTraverse_Thr(> 3)各函数间关系如下:下列仅供参考<请根据内容填写) CreateBinTree (> Inorder (> Inorder N(> print_cengci (> main(>PostTreeDepth (> leaf l (> CreateBiThrTree (> InOrderThreading (> InOrderTraverse_Thr(> 5.5 详细代码 见附录一。 5.6 使用说明 下列仅供参考<请根据内容填写) 程序名为二叉树.exe,所有程序在VC++ 6.0环境下调试通过。程序执行如图4-1。