数据结构课程设计(5篇)
第一篇:数据结构课程设计
课程设计说明书
设计名称: 数据结构课程设计
题 目: 设计五 :二叉树的相关操作
学生姓名: 专 业: 计算机科学与技术 班 级: 学 号: 指导教师: 日 期: 2012 年 3 月 5 日
课程设计任务书
计算机科学与技术 专业 年级 班
一、设计题目
设计五 二叉树的相关操作
二、主要内容
建立二叉树,并对树进行相关操作。
三、具体要求
1)利用完全二叉树的性质建立一棵二叉树。(层数不小于4层)2)统计树叶子结点的个数。3)求二叉树的深度。
4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。
四、进度安排
依照教学计划,课程设计时间为:2周。
本设计要求按照软件工程的基本过程完成设计。建议将时间分为三个阶段:第一阶段,根据题目要求,确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;第二阶段,根据流程图编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。三个阶段时间分配的大概比例是:35: 45: 20。
五、完成后应上交的材料
本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。其中课程设计说明书的格式按学校规范(见附件),其内容不能过于简单,必须包括的内容有:
1、课程设计的基本思想,系统的总功能和各子模块的功能说明;
2、课程设计有关算法的描述,并画出有关算法流程图;
3、源程序中核心代码的说明。
4、本课程设计的个人总结,主要包括以下内容:
(1)课程设计中遇到的主要问题和解决方法;
(2)你的创新和得意之处;
(3)设计中存在的不足及改进的设想;
(4)本次课程设计的感想和心得体会。
5、源代码要求在关键的位置有注释,增加程序的可读性。程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
此外,填写在《课程设计说明书》中,必须根据要求认真填写课程设计任务书,排版要求整齐,美观,打印后与课程设计说明书封面一起装订好,并于本学期第6周星期1下午前交到致用楼5楼。
六、总评成绩
指导教师 签名日期 年 月 日
系 主 任 审核日期 年 月 日 佛山科学技术学院课程设计用纸
一、总体思想„„„„„„„„„„„„„„„„„„„„„„6 1.1基本思想„„„„„„„„„„„„„„„„„„„„„6 1.2系统的总功能„„„„„„„„„„„„„„„„„„„6 1.3各子模块的功能说明„„„„„„„„„„„„„„„„6 1.3.1 结构体部分„„„„„„„„„„„„„„„„„„„„„„6 1.3.2主函数部分„„„„„„„„„„„„„„„„„„„„„„6 1.3.3子函数部分„„„„„„„„„„„„„„„„„„„„„„6
二、具体内容„„„„„„„„„„„„„„„„„„„„„„6 2.1 对应模块的算法流程图„„„„„„„„„„„„„„„6 2.1.1总的设计思想流程图„„„„„„„„„„„„„„„„„„7 2.1.2创建二叉树函数流程图„„„„„„„„„„„„„„„„„7 2.1.3统计叶子数函数流程图„„„„„„„„„„„„„„„„„8 2.1.4计算二叉树深度函数流程图„„„„„„„„„„„„„„„8 2.1.5前序遍历函数流程图„„„„„„„„„„„„„„„„„„9 2.1.6中序遍历函数流程图„„„„„„„„„„„„„„„„„„9 2.1.7后序遍历函数流程图„„„„„„„„„„„„„„„„„„10 2.2课程设计的算法描述„„„„„„„„„„„„„„„„10 2.3程序运行情况截图„„„„„„„„„„„„„„„„„16 2.3.1程序运行的目录以及创建二叉树操作:„„„„„„„„„„16
2.3.2计算二叉树叶子数和深度的相关操作:„„„„„„„„„„17 2.3.3对二叉树分别进行前序,中序和后序遍历的情况:„„„„„18 2.3.4选择错误及结束操作的运行情„„„„„„„„„„„„„„18
2.4程序备注„„„„„„„„„„„„„„„„„„„„„19
三、源程序中核心代码的说明„„„„„„„„„„„„„„„19 3.1总设计思想说明„„„„„„„„„„„„„„„„„„19 3.2创建二叉树函数说明„„„„„„„„„„„„„„„„19 3.3统计叶子数函数说明„„„„„„„„„„„„„„„„20 佛山科学技术学院课程设计用纸
3.4计算二叉树深度函数说明„„„„„„„„„„„„„„20 3.5前序遍历函数说明„„„„„„„„„„„„„„„„„20 3.6中序遍历函数说明„„„„„„„„„„„„„„„„„20 3.7后序遍历函数说明„„„„„„„„„„„„„„„„„21
四、个人总结„„„„„„„„„„„„„„„„„„„„„„21 4.1课程设计中遇到的问题„„„„„„„„„„„„„„„21 4.2对应问题的解决办法„„„„„„„„„„„„„„„„22 4.3程序中的得意之处„„„„„„„„„„„„„„„„„23 4.4设计中存在的不足及改进方法„„„„„„„„„„„„23 4.5设计中的感想以及心得体会„„„„„„„„„„„„„30
佛山科学技术学院课程设计用纸
一、总体思想
1.1基本思想
基本思想是利用完全二叉树的性质,用数组去创建一棵完全二叉树,再用函数调用去调用去调用相应的函数实现选项对应的操作。1.2系统的总功能
本系统的主要功能是为用户提供一个选择操作的菜单目录,并且实现对应选项的功能,具体功能有如下几点:
1、创建二叉树
2、统计叶子个数
3、求二叉树的深度
4、前序遍历输出列表
5、中序遍历输出列表
6、后序遍历输出序列
二叉树的基本性质7、退出操作
1.3各子模块的功能说明
本程序主要分为三大子模块: 1.3.1 结构体部分
BiTNode的结构体包含权值,左孩子存放地址和右孩子存放地址,是一个为了存放二叉树结点信息所创建的结构体。1.3.2主函数部分
该模块主要是实现对其他操作的函数调用的功能。1.3.3子函数部分
部分是实现对应子函数的操作,有:创建二叉树、统计叶子个数、求二叉树的深度、前序遍
历输出列表、中序遍历输出列表和后序遍历输出序列的功能。
二、具体内容
2.1对应模块的算法流程图 2.1.1总的设计思想流程图
2.1.2创建二叉树函数流程图
2.1.3统计叶子数函数流程图
2.1.4计算二叉树深度函数流程图 2.1.5前序遍历函数流程图
2.1.6中序遍历函数流程图 2.1.7后序遍历函数流程图
2.2课程设计的算法描述 #include #include #define MAXSIZE 1000 struct BiTNode{ int c;int lchild,rchild;}BiTNode,*BiTree;struct BiTNode tree[MAXSIZE];void creat()//创建二叉树函数 {
int i,j;printf(“需要输入权值个数:n”);scanf(“%d”,&j);if(j<8)//判断二叉树是否达到4层
{ printf(“错误:二叉树的层数少于4层!n”);
return;} printf(“开始输入权值:n”);for(i=1;i<=j;i=i+1)//权值的录入
{
scanf(“%d”,&tree[i].c);
tree[i].lchild=2*i;
tree[i].rchild=2*i+1;
} printf(“成功创建二叉树n”);} int leaves()//统计叶子个数函数 { int l,i;l=0;for(i=1;tree[i].c!=NULL;i++)//计算二叉树结点的个数
{
l++;} if((l%2))//判断结点的奇偶性从而计算叶子的个数 {
return(((l-1)/2)+1);} else
return(l/2);} int deep()//求二叉树的深度
{ int d,i,sum;sum=1;for(i=1;tree[i].c!=NULL;i++);//计算二叉树结点的个数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。