二叉树操作输出深度、结点数、叶结点数、递归.doc

二叉树操作输出深度、结点数、叶结点数、递归.doc

ID:50182164

大小:82.00 KB

页数:7页

时间:2020-03-06

二叉树操作输出深度、结点数、叶结点数、递归.doc_第1页
二叉树操作输出深度、结点数、叶结点数、递归.doc_第2页
二叉树操作输出深度、结点数、叶结点数、递归.doc_第3页
二叉树操作输出深度、结点数、叶结点数、递归.doc_第4页
二叉树操作输出深度、结点数、叶结点数、递归.doc_第5页
资源描述:

《二叉树操作输出深度、结点数、叶结点数、递归.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三二叉树的操作及应用一、实验目的1、掌握二叉树的特点,以及二叉链表的结构2、熟练掌握二叉树的各种操作,如建立、遍历、查找和输出3、利用己经掌握的进行实际应用二、实验要求1、编写程序实现二叉树的各种运算,并在此基础上设计主函数,使其完成如下功能:(1)按先序建立二叉树,如“ABC□□DE□G□□F□□□”,(□表示空格)。(2)建立二叉树后,判断二叉树空否,同时输出二叉树的深度。(3)建立二叉树后,判断二叉树空否,同时输出二叉树的结点数。(4)建立二叉树后,判断二叉树空否,同时输出二叉树的叶子点数。2、编写一个子函数,用非递

2、归算法中序遍历二叉树。三、程序运算结果截图第7页共7页四、程序源代码1.#include#includestructBinTreeNode;typedefstructBinTreeNode*PBinTreeNode;structBinTreeNode{charinfo;PBinTreeNodellink;PBinTreeNoderlink;};typedefstructBinTreeNode*BinTree;BinTreeCreateBiTree(){charch;BinTreet;sca

3、nf("%c",&ch);if(ch=='')t=NULL;else{t=(BinTree)malloc(sizeof(structBinTreeNode));t->info=ch;t->llink=CreateBiTree();t->rlink=CreateBiTree();}returnt;}intIsEmptyTree(BinTreet)//创建二叉树{if(t==NULL)return0;elsereturn1;}intGetDepth(BinTreet)//返回二叉树的深度{intl,r,c;l=r=c=0;if(t

4、){第7页共7页l=GetDepth(t->llink);r=GetDepth(t->rlink);c=(l>r?l:r);returnc+1;}elsereturn0;}intNode(BinTreet)//返回二叉树的结点数{if(t)returnNode(t->llink)+Node(t->rlink)+1;elsereturn0;}intLeaf(BinTreet)//返回二叉树的叶子点数{if(t){if((t->llink==NULL)&&(t->rlink==NULL))return1;elsereturnLea

5、f(t->llink)+Leaf(t->rlink);}elsereturn0;}main(){BinTreet;printf("pleaseinput:");t=CreateBiTree();if(IsEmptyTree==0)printf("二叉树为空");elseprintf("二叉树不为空");printf("二叉树的深度是:");printf("%d:",GetDepth(t));printf("二叉树的结点数是:");printf("%d:",Node(t));printf("二叉树的叶子点

6、数是:");printf("%d:",Leaf(t));}第7页共7页2.#include#includestructBinTreeNode;typedefstructBinTreeNode*PBinTreeNode;structBinTreeNode{charinfo;PBinTreeNodellink;PBinTreeNoderlink;};structBinTreeNodeBinTreeNode;typedefstructBinTreeNode*BinTree;#includ

7、e#include#includetypedefintDataType;structSeqStack{intMAXNUM;intt;DataType*s;};typedefstructSeqStack*PSeqStack;PSeqStackcreateEmptyStack_seq(intm)//创建空栈{PSeqStackpastack=(PSeqStack)malloc(sizeof(structSeqStack));if(pastack!=NULL){pastack

8、->s=(DataType*)malloc(sizeof(DataType)*m);if(pastack->s){pastack->MAXNUM=m;pastack->t=-1;returnpastack;}elsefree(pastack);}printf("Outofsp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。