版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#include#include#definesize100tvpedefstmctbtnchardata;stmctbtn*lchild5*rcliild;btiee,*BT;mtsum;mtcount;mtlefs;voidcreateTree(BT&E)创建二叉树charch;getchaiQ;pnntfC*请输入二叉树的基本元素以*结束n);scanfC%c”、&ch);if(ch=护)E=NULL;elseB=(BT)nialloc(sizeof(btiee);if(!E)exit(O);B-data=ch;cieateTree(B-lchild);createTre
2、e(B-rchild);return;voidFiistpriiit(BT&E)递归先序遍历二叉树贞E!=NULL)printf(n%cB-data);Firstprmt(B-lchild);Firstprmt(B-rchild);voidnuddleprint(BT&E)递归中序遍历二叉树贞E!=NULL)Firstprint(B-lchild);printf(”c*B-data);Firstprmt(B-rchild);voidlastpriiit(BT&E)递归后序遍历二叉树贞E!=NULL)Firstprint(B-lchild);Firstprmt(B-rchild);printf(
3、”c*B-data);voidnuddlepriiitl(BT&E)非递归中序遍历BTp;BTstack3O;inttop=0;P=B;printf(非递归中序遍历为:n);while(p|top!=0)while(p)stacktop+=p;p=p-lcliild;p=stack-top;printf(,r%c*p-data);p=prchild;pnntf(Mn非递归中序遍历成功mtBtreeDepth(BT&E)求二叉树的深度intrdjd;return0;elserd=BtieeDepth(B-lchild);ld=BtreeDepth(B-rchild);if(rdld)return
4、ld+1;elsereturnid-rl;mtSuinLefes(BT&Bintsum)求叶子结点个数】f(E)if(B-lcluld=NULL&B-rchild=NULL)sum+;sum=SuniLefes(B-lchild,sum);sum=SuniLefes(B-icliild、sum);retuin(sum);/利用循坏队列按照层次遍历二叉树/定义队列tvpedefstmctqueueBT*base;intfront;intrear;queue;队列实现voidQueueStart(queue&Q)队列的初始化Q.base=(BT*)malloc(size*sizeof(BT);if
5、(!Q.base)exit(O);Q.front=0;Q.rear=O;voidQueueliit(queue&Q,BT&p)入队rear+1)%size=Q.front)return;Q.baseQ.reai=p;Q.reai-(Q.rear+l)%size;voidQueueOut(queue&Q.BT&p)出队printf(%cn,p-data);if(Q.realQ.front)return;p=Q.baseQ.front;Q.fiont=(Q.fiont+1)%size;实现用循环队列遍历二叉树voidleveltree(BT&E)queueS;BTp;P=B;QueueStait(
6、S);】f(P)QueueInt(S,p);while(S.reai!=S.front)QueueOut(S.p);if(p-lcluld)QueueInt(S,p-lcliild);if(p-rcliild)QueueIiit(S.p-rcluld);mtmam()BTB;intmm;pnntfCiW选择菜单项目An”);pnntf(1:创建一个二叉树5”);pnntfC*2:递归、先序、中序后序遍历二叉树5”);非递归中序遍历二叉树11);pnntf(”4:求二叉树的深度n”);pmitf(”5:求二叉树的叶子节点的个数5”);pnntfC6:利用循坏队列对二叉树进行遍历n);while(
7、scanf(H%d,&inin)?=EOF)switch(nmi)case1:createTiee(B);二叉树创建成功n”);break;case2:iiitmi;pnntf(”l:先序遍历n”);printffN:中序遍历XnJ;prmtf(H3:后序遍历n”);while(scanf(H%d,&iin)?=EOF)switch(mi)case1:Fustpnnt(B);pnntfCXn先序遍历成功n);break:case2:iniddlepiint(B);pnntfCXn中序遍历成功n);break:case3:lastprmt(B);pmitf(”n后序遍历成功n);break:prmtf(Hl:先序遍历iT);prmtf(H2:中序遍历iT);pnntf(”3:后序遍历n”);case3:nuddleprmtl(B);break;case4:count=BtreeDepth(B);二叉树的深度为:%dXncount);break;case5:lefs=SuniLefes(B,sum);二叉树的叶子节点的个数为:dn”,lefs);break;case6:leveltiee(B);break;pirntfC1请选择菜单项目1:创建一个二叉树山”);prmtf(2:递
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业公司配电房施工合同
- 城市污水处理挡土墙施工劳务合同
- 屋面绿化施工改造合同
- 展览馆装饰工程施工协议
- 钢铁行业讲师聘用合同
- 科研实验地面施工合同
- 高速公路扩建围挡施工合同
- 城市地铁站广告牌施工合同
- 教育用品加工场地租赁合同
- 汽车维修公司技师聘用合同样本
- 2024-2030年中国飞行时间(ToF)传感器行业市场发展趋势与前景展望战略分析报告
- 2024年新苏教版科学六年级上册全册知识点
- 砼结构构件制造行业产业链协同与价值链优化
- 人教版五年级数学上册第四单元《可能性》全部集体备课教学设计
- 《思想道德与法治》复习题(一)
- 乒乓球俱乐部合伙协议
- 小学二年级科学经典习题及答案
- 酒店管理概论智慧树知到期末考试答案章节答案2024年海南热带海洋学院
- 消化内科健康教育手册
- 2024年山东省高中自主招生数学模拟试卷试题(含答案)
- 基于视觉的机器人废金属分拣系统研究
评论
0/150
提交评论