主函数和层次建立二叉树 数据结构课程设计.doc_第1页
主函数和层次建立二叉树 数据结构课程设计.doc_第2页
主函数和层次建立二叉树 数据结构课程设计.doc_第3页
主函数和层次建立二叉树 数据结构课程设计.doc_第4页
主函数和层次建立二叉树 数据结构课程设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黑龙江八一农垦大学数据结构课程设计报告设计名称 主函数和层次建立二叉树 专 业 信息与计算科学 年 级 11级 组 长 俎向朋 学 号 20114091024 组 员 徐丰 黄复闯 学 号 20114091017(徐丰) 20114091023(黄复闯) 黑龙江八一农垦大学文理学院数学实验室目 录一、设计题目1二、运行环境1三、设计思想1四、流程图1五、算法设计分析1六、运行结果分析3七、学习总结6八、源代码6主函数代码6层次建立二叉树代码8一、设计题目 主函数设计和层次建立二叉树二、运行环境VC+6.0三、设计思想主函数设计由于程序的功能进行的了模块化设计,分别由各小组完成,所以主函数的设计是对所有模块的调用以实现函数的各种功能,进而完成程序的功能实现。各个功能模块是并列关系,就用switch分支结构实现对功能函数的平行调用。为了使操作者清楚自己的指令所实现的功能,所以设计了一个主界面来介绍模块功能和对应的操作指令。四、流程图略(本小组负责设计主函数故流程图省略)。五、算法设计分析我们小组选用层次建立法建立二叉树,操作时按层次直接输入即可,不需要将元素进行先序或中序或后序处理。为了实现二叉树的层次输入建立而采用队列作为二叉树的存储结构。另外,还选用了结构体等数据结构。具体数据结构介绍如下:二叉树结点结构体:typedef struct Binnode char data; struct Binnode *lchild; struct Binnode *rchild;该结构体包含数据域(储存结点信息)和指针域(储存结点的左右孩子结点的指针)。二叉树结点队列:typedef struct queue Bintree data30; int front; int rear;该结构体包含一个Bintree类型的数组,其内储存结点信息。层次建立二叉树的算法设计如下:Bintree Level_Creat()Bintree root,p,s;queue node;node.front=node.rear=0;char ch;ch=getchar();if(ch=&)return NULL;root=(Binnode*)malloc(sizeof(Binnode); /生成根结点root-data=ch;node.datanode.rear+=root; /用队列实现层次遍历while(node.frontdata=ch;p-lchild=s;node.datanode.rear+=s;elsep-lchild=NULL;ch=getchar();if(ch!=&)s=(Binnode*)malloc(sizeof(Binnode);s-data=ch;p-rchild=s;node.datanode.rear+=s;elsep-rchild=NULL;return root;六、运行结果分析主界面运行结果分析 输入任意键进入选项操作界面输入112 实现所选操作层次建立二叉树运行结果分析: 进行输入操作时要注意程序终止条件,由于我们小组采用的是层次建立,所以结束条件为当二叉树的地所有叶子结点的左右孩子指针域为空时程序结束:简单举例: A C B F E D G H I L 输入ABC&DEFGH&L&I&输出结果如下;七、学习总结我们学习小组在做这次课程设计的时候我们很团结 作为组长的我, 把我们每个人的任务都部署的很详细 每个人都应该做些什么, , 我们分工明确 配合融洽 互相帮助 一起探讨整个课程设计的中心思想.通过这次课程设计,我们发现,对于所学的知识,我们掌握的不是很好,我们需要将知识理解透彻,不应该只学习表面的浅层的知识, 我们觉得我们这次的课程设计完成的不是很好,我们组的成员应该好好思考一下,找到我们的不足,为下一次的课程设计做一个完美的铺垫。我们会继续改进,继续努力的.还有通过这次课程设计 我们不但使同学关系更加和谐 而且还能增进我们之间的团队意识 我觉得这是一项很好的活动.。我建议老师以后能多多给我们这样的机会,来培养我们的一些能力!总之通过这项活动 。我们虽说面对大的程序有些不知所措 但是我们总体来说还是很开心的!。八、源代码主函数代码#include#include#include/清屏函数头文件void jiemie1() system(CLS);printf(=n);printf(=欢迎进入主界面!=n);printf( n);printf( 1、输出家族树n);printf( 2、统计家族成员数目查找n);printf( 3、向家族中添加一个新成员n);printf( 4、确定某一成员是第几代n);printf( 5、查找某一成员的兄弟n);printf( 6、查找某一成员的双亲n);printf( 7、查找某一成员的鼻祖n);printf( 8、查找某一成员的堂兄弟n);printf( 9、查找某一成员是否存在n);printf( 10、查找某一成员的子孙后代n);printf( 11、查找某一成员的所有孩子n);printf( 12、查找某一成员的所有祖先路径n);/printf( 14、进入*n); printf(=n);/printf(请选择你的操作选项:n);void hanshu1()void jiemian2(int n)switch(n)case 1:printf(执行函数1-输出家族树n);break;case 2:printf(执行函数2-统计家族成员数目查找n);break;case 3:printf(执行函数3-向家族中添加一个新成员n);break;case 4:printf(执行函数4-确定某一成员是第几代n);break;case 5:printf(执行函数5-查找某一成员的兄弟n);break;case 6:printf(执行函数6-查找某一成员的双亲n);break;case 7:printf(执行函数7-查找某一成员的鼻祖n);break;case 8:printf(执行函数8-查找某一成员的堂兄弟n);break;case 9:printf(执行函数9-查找某一成员是否存在n);break;case 10:printf(执行函数10-查找某一成员的子孙后代n);break;case 11:printf(执行函数11-查找某一成员的所有孩子n);break;case 12:printf(执行函数12-查找某一成员的所有祖先路径n);break; /case 13:printf(执行函数13n);hanshu1();break;/case 14:printf(执行函数14n);hanshu1();break;default:printf(输入有误!n);break;int main()int i;char ch;ch=getchar();while(ch!=w)ch=1; jiemie1(); system(PAUSE);system(CLS);printf(请选择你的操作选项:n);scanf(%d,&i);/system(PAUSE);/system(CLS); jiemian2(i);system(PAUSE); ch=getchar();return 0;层次建立二叉树代码#include#includetypedef struct Binnode/二叉树结点结构体char data; struct Binnode *lchild; struct Binnode *rchild;typedef Binnode *Bintree ;typedef struct queue /二叉树结点队列 Bintree data30; int front; int rear;void Inorder1(Bintree t)if(t!=NULL)Inorder1(t-lchild);printf(%c,t-data);Inorder1(t-rchild);Bintree Level_Creat()Bintree root,p,s;queue node;node.front=node.rear=0;char ch;ch=getchar();if(ch=&)return NULL;root=(Binnode*)malloc(sizeof(Binnode); /生成根结点root-data=ch;node.datanode.rear+=root; /用队列实现层次遍历while(node.frontdata=ch;p-lchild=s;node.datanode.rear+=s;elsep-lchild=NULL;ch=getchar();if(ch!=&)s=(Binnode*)malloc(sizeof(Binnode);s-data=ch;p-rchild=s;node.datanode.rear+=s;elsep-rchild=NULL;return root;void Levelorder(Bintree t)queue q;q.data0=t;q.front=0;q.rear=1;printf(层次遍历二叉树结果:);while(q.frontdat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论