欢迎来到天天文库
浏览记录
ID:27695491
大小:278.92 KB
页数:11页
时间:2018-12-05
《1614010102曹妍数据结构实验报告3》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、软件与微电子学院(2017-2018第一学期)课程名称:软件与微电子学院(2017-2018第一学期)课程名称:班级:学号:姓名:实验名称数据结构实验三专业软件工程姓名曹妍学号1614010102班级软件16-1班实验目的:1.熟练掌握二叉树的建立方法;2.熟练掌握二叉树的遍历算法;3.掌握二叉树的应用算法。:、实验内容:1.编写算法建立一棵二叉树的二叉链表;2.输出二叉树的三种遍历序列,包括递归算法、非递归算法;3.编写算法统计二叉树结点数、叶子数、深度。三、实验设备及软件环境:软件需求:CodeBlocks硬件需求:微型计算机四、实验过程及结果:程序一、二:in
2、clude#includeusingnamespacestd;structBiTNode{chardata;structBiTNode*lchild,*rchild;//左右孩子};BiTNode叮;voidCreateBiTree(BiTNode*&T);voidlnorder(BiTNode*&T);voidPreOrderTraverse(BiTNode*&T);voidPosorder(BiTNode*&T);//主函数intmain(){#”表示空cout«n仓d建一颗树,其中A->Z字符代表树的数据,用树:"<3、dl;CreateBiTree(T);cout<<"先序递归遍历:H«endl;PreOrderTraverse(T);cout«endl;cout<<”中序递归遍历:"«endl;Inorder(T);cout«endl;cout<<”后序递归遍历:"«endl;Posorder(T);cout«endl;return1;}//先序递归创建二叉树树voidCreateBiTree(BiTNode*&T){//按先序输入二叉树中结点的值,空格字符代表空树,//构造二叉树表表示二叉树T。charch;if((ch=getchar())=='#')T=NULL;//其中4、getchar()为逐个读入标准库函数else{T=newBiTNode;//产生新的子树T->data=ch;//由getchar()逐个读入来CreateBiTree(T->lchild);//递归创建左子树CreateBiTree(T->rchild);//递归创建右子树}}//先序递归遍历二叉树voidPreOrderTraverse(BiTNode*&T){//先序递归遍历二叉树if(T)//当结点不为空的时候执行{cout«T->data;PreOrderTraverse(T->lchild);//PreOrderTraverse(T->rchild);5、}elsecout«"";}//中序遍历二叉树voidlnorder(BiTNode*&T)//中序递归遍历二叉树{if(T)//bt=null退层{lnorder(T->lchild);//中序遍历左子树cout«T->data;//访问参数lnorder(T->rchild);//中序遍历右子树}elsecout<<”";}//后序递归遍历二叉树voidPosorder(BiTNode*&T){if(T){Posorder(T->lchHd);//后序递归遍历左子树Posorder(T->rchild);//后序递归遍历右子树cout«T->data;//访问根6、结点}elsecout<<”";}J?:■z]*>咖'AS(¥7、8、If-1^4mama*、V龜三-IB>SbmcmSn2)l2sz2s>-Is>>的irti.n•-rnx-了Ic««hive9、CvutLoafTr19^J纛鷉象oeiBBiTiecT/Ubt纂.•JSmbret•,象"Hh二CtewccBiTreeiTiil«fllM9F-Co10、1m«•,CodsfitocUCUediMf(e>t•■糞•tote*f:S«<111、lAanif12、11^:.C•滅廉ilM'C易《!•&▲•<*•/cb^iai£4轉1IBMIA釁夤寬備蕊TTTTTTT^BasmZT惠•"g羿駕j感hdHiwv>vlduweWO<•曜•程序三:#includeusingnamespacestd;typedefstructTNode//二叉树结构{charnodeValue;//结点的值TNode*left;//左子树TNode*right;//右子树}*BiTree;voidCreateBiTree(BiTree&T)//中序遍历方式创建
3、dl;CreateBiTree(T);cout<<"先序递归遍历:H«endl;PreOrderTraverse(T);cout«endl;cout<<”中序递归遍历:"«endl;Inorder(T);cout«endl;cout<<”后序递归遍历:"«endl;Posorder(T);cout«endl;return1;}//先序递归创建二叉树树voidCreateBiTree(BiTNode*&T){//按先序输入二叉树中结点的值,空格字符代表空树,//构造二叉树表表示二叉树T。charch;if((ch=getchar())=='#')T=NULL;//其中
4、getchar()为逐个读入标准库函数else{T=newBiTNode;//产生新的子树T->data=ch;//由getchar()逐个读入来CreateBiTree(T->lchild);//递归创建左子树CreateBiTree(T->rchild);//递归创建右子树}}//先序递归遍历二叉树voidPreOrderTraverse(BiTNode*&T){//先序递归遍历二叉树if(T)//当结点不为空的时候执行{cout«T->data;PreOrderTraverse(T->lchild);//PreOrderTraverse(T->rchild);
5、}elsecout«"";}//中序遍历二叉树voidlnorder(BiTNode*&T)//中序递归遍历二叉树{if(T)//bt=null退层{lnorder(T->lchild);//中序遍历左子树cout«T->data;//访问参数lnorder(T->rchild);//中序遍历右子树}elsecout<<”";}//后序递归遍历二叉树voidPosorder(BiTNode*&T){if(T){Posorder(T->lchHd);//后序递归遍历左子树Posorder(T->rchild);//后序递归遍历右子树cout«T->data;//访问根
6、结点}elsecout<<”";}J?:■z]*>咖'AS(¥
7、
8、If-1^4mama*、V龜三-IB>SbmcmSn2)l2sz2s>-Is>>的irti.n•-rnx-了Ic««hive9、CvutLoafTr19^J纛鷉象oeiBBiTiecT/Ubt纂.•JSmbret•,象"Hh二CtewccBiTreeiTiil«fllM9F-Co10、1m«•,CodsfitocUCUediMf(e>t•■糞•tote*f:S«<111、lAanif12、11^:.C•滅廉ilM'C易《!•&▲•<*•/cb^iai£4轉1IBMIA釁夤寬備蕊TTTTTTT^BasmZT惠•"g羿駕j感hdHiwv>vlduweWO<•曜•程序三:#includeusingnamespacestd;typedefstructTNode//二叉树结构{charnodeValue;//结点的值TNode*left;//左子树TNode*right;//右子树}*BiTree;voidCreateBiTree(BiTree&T)//中序遍历方式创建
9、CvutLoafTr19^J纛鷉象oeiBBiTiecT/Ubt纂.•JSmbret•,象"Hh二CtewccBiTreeiTiil«fllM9F-Co10、1m«•,CodsfitocUCUediMf(e>t•■糞•tote*f:S«<111、lAanif12、11^:.C•滅廉ilM'C易《!•&▲•<*•/cb^iai£4轉1IBMIA釁夤寬備蕊TTTTTTT^BasmZT惠•"g羿駕j感hdHiwv>vlduweWO<•曜•程序三:#includeusingnamespacestd;typedefstructTNode//二叉树结构{charnodeValue;//结点的值TNode*left;//左子树TNode*right;//右子树}*BiTree;voidCreateBiTree(BiTree&T)//中序遍历方式创建
10、1m«•,CodsfitocUCUediMf(e>t•■糞•tote*f:S«<1
11、lAanif
12、11^:.C•滅廉ilM'C易《!•&▲•<*•/cb^iai£4轉1IBMIA釁夤寬備蕊TTTTTTT^BasmZT惠•"g羿駕j感hdHiwv>vlduweWO<•曜•程序三:#includeusingnamespacestd;typedefstructTNode//二叉树结构{charnodeValue;//结点的值TNode*left;//左子树TNode*right;//右子树}*BiTree;voidCreateBiTree(BiTree&T)//中序遍历方式创建
此文档下载收益归作者所有