版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学校代码:10128学 号:201220905048 数据结构实验报告(题 目:二叉树遍历算法的设计学生姓名:孙跃学 院:理学院系 别:数学系专 业:信息与计算科学班 级:信计12-2任课教师:杜雅娟二一四年十一月2一、实验目的通过理解二叉树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。二、程序分析本演示程序用Visual C+ 6.0编写,完成二叉树的遍历算法。1.按先序次序输入二叉树中结点的值,构造二叉链表表示的二叉树t;2.对二叉树t作先序、中序、后序遍历的递归算法,输出结果;3.计算二叉树t的深度,输出结果;4.计算二叉树t的叶子结点个数。三、程序设计在开头定义了
2、二叉树的链式存储结构,此处采用了每个结点中设置三个域, 即值域,左指针域和右指针域。1、 二叉树的建立链式存储结构,首先typedef struct BiTNode:定义二叉树的链式存储结构,此处采用了每个结点中设置三个域,data:即值域,*lchild:左指针域和rchild:右指针域;2、 二叉树的前序遍历;利用二叉链表作为存储结构的前序遍历:先访问根结点,再依次访问左右子树;3、 二叉树的中序遍历;利用二叉链表作为存储结构的中序遍历:先访问左子数,再访问根结点,最后访问右子树;4、 二叉树的后序遍历;利用二叉链表作为存储结构的前序遍历:先访问左右子树,再访问根结点;5、 求二叉树的深度
3、:首先判断二叉树是否为空,若为空则此二叉树的深度为0。否则,就先别求出左右子树的深度并进行比较,取较大的+1就为二叉树的深度;6、 二叉树的求叶子结点的个数计算;先分别求得左右子树中各叶子结点个数,再计算出两者之和即为二叉树的叶子结点数;7、 主函数:主函数中分别调用各函数。四、 实验程序#include<stdio.h>#include<malloc.h>#define M 20typedef struct nodechar data;struct node *lchild,*rchild;BTnode;BTnode * create()BTnode *t;char
4、ch;scanf("%c",&ch);if(ch='#')t=NULL;elset=(BTnode*)malloc(sizeof(BTnode);t->data=ch;t->lchild=create();t->rchild=create();return t;void Inordertraverse(BTnode *t)int i=0;BTnode *p,*sM;p=t;dowhile(p!=NULL)si+=p;p=p->lchild;if(i>0)p=s-i;printf("%ct",p->
5、;data);p=p->rchild;while(i>0|p!=NULL);void Preordertraverse(BTnode *t)int i=0;BTnode *p,*sM;p=t;dowhile(p!=NULL)printf("%ct",p->data);if(p->rchild!=NULL)si+=p->rchild;p=p->lchild;if(i>0)p=s-i;while(i>0|p!=NULL);void Postordertraverse(BTnode *t)int slM;int i=0;BTnode
6、 *p,*sM;p=t;dowhile(p!=NULL)si=p;sli+=0;p=p->lchild;while(i>0&&sli-1=1)p=s-i;printf("%ct",p->data);free(p);if(i>0)sli-1=1;p=si-1;p=p->rchild;while(i>0);printf("n");int high(BTnode *t)int h,lh,rh;if(!t)return 0;lh=high(t->lchild);rh=high(t->rchild);
7、h=lh?lh+1:rh+1;return h;int leafcount(BTnode *t,int &n)BTnode *p=t;if(p)if(p->lchild=NULL&&p->rchild=NULL)n+;n=leafcount(p->lchild,n);n=leafcount(p->rchild,n);return n;void main()BTnode *t;int n=0;printf("input data: ");t=create();printf("n Preordertraverse: &q
8、uot;);Preordertraverse(t);printf("n Inordertraverse: ");Inordertraverse(t);printf("n the left's number: ");n=leafcount(t,n);printf("%d",n);printf("n the high of the bintree: ");n=high(t);printf("%d",n);printf("n Postordertraverse: ");Po
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年必修1道德与法治阶段测试433
- 山东省济南市(2024年-2025年小学五年级语文)人教版期末考试(上学期)试卷及答案
- 军工设备校验与校正办法
- 云南省思茅市(2024年-2025年小学五年级语文)人教版小升初模拟(上学期)试卷及答案
- 面向2024:《拿来主义》教学课件的创意设计与应用
- 2024版人力资源教案:引领未来管理
- 2024海滨小城交通发展现状
- 2024年新课标下的《青玉案·元夕》教学策略与教案设计
- 2024年ERP沙盘教案:助力企业战略决策
- 2023企业劳动规章制度(10篇)
- 2024年车路云一体化系统建设与应用指南报告
- 2024中国移动重庆公司社会招聘138人高频难、易错点500题模拟试题附带答案详解
- 二十届三中全会精神知识竞赛试题及答案
- (完整版)初中道德与法治课程标准
- 在建工地第三方安全文明巡查方案、在建工地安全文明施巡查方案
- 中国石油大庆油田有限责任公司招聘笔试题库2024
- 课件:《中华民族共同体概论》第十六讲 文明新路与人类命运共同体
- 教科版五年级科学上册全册学案、学习任务单【全册】
- 2024年秋八年级历史上册 第13课 五四运动教案 新人教版
- 专业学位硕士研究生英语智慧树知到答案2024年黑龙江中医药大学
- 《电力系统继电保护》课程标准(含课程思政)
评论
0/150
提交评论