欢迎来到天天文库
浏览记录
ID:22288617
大小:216.50 KB
页数:6页
时间:2018-10-28
《数据结构实验报告二叉树》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、重庆大学学生实验报告LD104实验课程名称开课实验室〔学与统计学院年级2013级专业班应用数学2班学生姓名童钞学号20131989开课时间2015至2016学年第一学期总成绩教师签名课程名称数据结构实验项目名称二叉树在C语言中的实现实验项目类型验证演示综合设计其他指导教师何光辉成绩7一实验项S名利〈:二叉树在c语言中的实现二实验目的:(1)熟悉用C++语言实现二叉树的数据结构(2)设计出相应的算法,编制相应的函数程序三实验原理:算法程序:^include^include〈stdlib.h>#includetypcdefintElcmTypc
2、;//数据类型//定义二叉树结构,与单链表相似,多了一个右孩子结点typedefstructBiTNode{ElemTypedata;//数据域structBiTNode*lChild,*rChlid;//左右子树域}BiTNode,*BiTree;//先序创建二叉树intCreateBiTree(BiTree氺T){ElemTypech;ElemTypetemp;scanf(〃%d〃,&ch);temp=getchar();if(ch==-1)*T=NULL;else{*T=(BiTree)malloc(sizeof(BiTNode));if(!(*T))exit(—1);(
3、*T)->data=ch;printf(〃输的左子节点:〃,ch);CreateBiTree(&(*T)->lChild);printf("输入%(1的右子节点:〃,ch);CreateBiTree(&(*T)->rChlid);}return1;}//先序遍历二叉树voidTravcrscBiTrcc(BiTrccT){if(T==NULL)return;printf("%d",T~>data);TraverseBiTree(T->lChi]d);TravcrscBiTrcc(T~>rChlid);}//中序遍历二叉树voidInOrderBiTree(BiTreeT){if
4、(T==NULL)return;InOrderBiTree(T->lChiId);printf("%d",T-〉data);InOrderBiTree(T->rChlid);//后序遍历二叉树voidPostOrderBiTree(BiTreeT){if(T==NULL)return;PostOrderBiTree(T->lChiId);PostOrderBiTree(T~>rChlid);printf("%d",T-〉data);//二叉树的深度intTrccDccp(BiTreeT){intdeep=0;if⑺{intleftdeep=TreeDeep(T~>lChild)
5、;intrightdeep=TreeDeep(T->rChlid);deep=lcftdccp>=rightdccp?lcftdccp+l:rightdccp+1;}returndeep;}//求二叉树叶子结点个数intLcafcount(BiTreeT,int&num){if⑺{if(T->lChild==NULL&&T->rChlid=NULL)num++;Leafcount(T->lChild,num);Leafcount(T->rChlid,num);returnnum;}//主函数intmain(void){BiTreeT;BiTrcc*p=(BiTrcc*)mall
6、oc(sizcof(BiTree));intdeepth,num二0;printf("请输入第一个结点的值,-1表示没有叶结点:");CreateBiTree(&T);printf(〃先序遍历二叉树:〃);TraverseBiTree(T);printfr’rT);printf(〃中序遍历二叉树:〃);InOrderBiTree(T);printf(,z,z);printf(〃后序遍历二叉树:〃);PostOrdcrBiTrcc(T);printfCrT);deepth=TreeDeep(T);printf(〃树的深度为:%d〃,deepth);prin
7、tfr’rT);Leafcount(T,num);printf("树的叶子结点个数为:%d",num);printf(,z,z);return0;}三实验内容与步骤!i!计算实例、数据、结果、分析
此文档下载收益归作者所有