




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、页眉内容/二叉树的基本操作#include typedef struct node/ 定义结点char data;struct node *lchild, *rchild;typedef BinTNode *BinTree; / 定义二叉树void CreateBinTree(BinTree &T);void PreOrder(BinTree T);void InOrder(BinTree T);void PostOrder(BinTree T);int onechild(BinTree T);int leafs(BinTree T);int twochild(BinTree T);void
2、translevel(BinTreeb);void main()/先序创建二叉树/先序遍历二叉树/ 中序遍历二叉树/ 后序遍历二叉树/求度为 1 的结点的个数/求叶子结点的个数/ 度为 2 的结点的个数/层序遍历二叉树int n;BinTree T;char ch1,ch2;cout欢迎进入二叉树测试程序的基本操作endl;cout- 请选择 -endl;ch1=y;while(ch1=y|ch1=Y)cout1- 建立二叉树n;cout2-先序遍历 n;cout3-中序遍历 n;cout4-后序遍历 n;页眉内容cout5- 单孩子结点数 n;cout6- 双孩子结点数 n;cout7- 叶
3、子结点数 n;cout8- 层序遍历 n;coutch2;switch(ch2)case 1:cout请输入按先序建立二叉树的结点序列:n;CreateBinTree(T);coutendl;break;case 2:cout二叉树的先序遍历序列:n;PreOrder(T);coutendl;break;case 3:cout二叉树的中序遍历序列:n;InOrder(T);coutendl;break;case 4:cout二叉树的后序遍历序列:n;PostOrder(T);coutendl;break;case 5:页眉内容cout二叉树的单孩子结点数:n;n=onechild(T);cou
4、tnendl;coutendl;break;case 6:cout二叉树的双孩子结点数:n;n=twochild(T);coutnendl;coutendl;break;case 7:cout二叉树的叶子结点数:n;n=leafs(T);coutnendl;coutendl;break;case 8:cout二叉树的层序遍历序列:n;translevel(T);coutch;if(ch=0)T=NULL;elseT=(BinTNode *)new BinTNode;T-data=ch;CreateBinTree(T-lchild );CreateBinTree(T-rchild );void
5、InOrder(BinTree T)if(T)InOrder(T-lchild );coutdata;InOrder(T-rchild );void PostOrder(BinTree T)if(T)PostOrder(T-lchild );PostOrder(T-rchild );coutdata;页眉内容void PreOrder(BinTree T)if(T)coutdata;PreOrder(T-lchild );PreOrder(T-rchild );/层序遍历二叉树/采用一个队列q,先将二叉树的根结点入队列,然后退队列,输出该结点,若它有左子树,便将左子树根结点入队列,若它有右子树
6、,便将右子树根结点入队列,如此直到队列空为止。/因为队列的特点是先进先出,从而达到按层序遍历的目的。#define MAXLEN 100void translevel(BinTreeb)struct nodeBinTreevecMAXLEN;int f, r;q; /定义队列 q, f 表示队头指针, r 队尾指针 q.f=0; /置队列为空队列q.r=0;if(b!=NULL) coutdata;q.vecq.r=b;/结点指针进入队列q.r=q.r+1;/队尾指针后移while(q.flchild!=NULL)/输出左孩子,并入队列coutlchild-datalchild;q.r=q.r
7、+1;if(b-rchild!=NULL)/输出右孩子,并入队列coutrchild-datarchild;q.r=q.r+1;int onechild(BinTree T)/ 求度为 1 的结点的个数if(T=NULL) return 0;else if(T-lchild =NULL & T-rchild!=NULL|T-lchild!=NULL & T-rchild=NULL)return (onechild(T-lchild)+onechild(T-rchild)+1);elsereturn (onechild(T-lchild)+onechild(T-rchild);int leafs(BinTree T)int num1,num2;if(T=NULL) return 0;else if(T-lchild=NULL &T-rchild =NULL) return 1;页眉内容elsenum1=leafs(T-lchild );num2=leafs(T-rchild );return num1+num2;int twochild(BinTree T)int num0=0,num1,num2;if(T=NULL) return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目管理考试内容理解试题及答案
- 项目管理资格认证考试回顾试题及答案
- 2024年项目管理专业人士资格考试预测试题及答案
- 2025年会计岗位职责试题及答案
- 洗煤厂粉尘治理施工方案
- 微生物检验技师的基本知识试题及答案
- 财务政策对公司战略的影响试题及答案
- 水泥土换填施工方案批复
- 管道工程测量与定位考核试卷
- 2024年项目管理能力评估试题及答案
- 公司电脑常见问题处理手册
- 宠物输液治疗技术-静脉输液疗法(宠物临床治疗课件)
- 猪白条购销合同范本
- 锅炉延期检验申请书
- 部编版道德与法治三年级下册第三单元《我们的公共生活》大单元作业设计案例(一)
- 机械设计手册:单行本 液压传动(第六版)
- 红色故事宣讲《小萝卜头的故事》
- 活动板房拆装合同模板范本
- GPS在森林调查中的应用-手持GPS在森林调查中的应用(森林调查技术)
- 直接打印800字作文纸
- 武汉市轨道交通一号线某期工程土建施工投标施工组织设计
评论
0/150
提交评论