




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二叉树就是每个结点最多有两个子树的树形存储结构,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被且只被访问一次。程序的流程图如下:程序代码如下:#include#include#include#includetypedef char ElemType;struct BTreeNodeElemType data; BTreeNode*left;BTreeNode*right;void InitBTree(BTreeNode*& BT) /初始化二叉树BT=NULL;void CreateBTree(BTreeNode*& BT,char*a) /根据广义表表示的二叉树建立对应的存储结构const int MaxSize=10;BTreeNode*sMaxSize;int top=-1;BT=NULL;BTreeNode*p;int k;int i=0;while(ai)switch(ai)case :break;case (:if(top=MaxSize-1)printf(栈的空间太小,请增加MaxSize的值n);exit(1);top+;stop=p;k=1;break;case ):if(top=-1)printf(二叉树广义表字符串错!n);exit(1);top-;break;case ,:k=2;break;default:p=new BTreeNode;p-data=ai;p-left=p-right=NULL;if(BT=NULL)BT=p;elseif(k=1)stop-left=p;elsestop-right=p;i+;bool EmptyBTree(BTreeNode*BT) /判断一棵二叉树是否为空,若是则返回ture,否则返回falsereturn BT=NULL;int DepthBTree(BTreeNode*BT)if(BT=NULL)return 0;elseint dep1=DepthBTree(BT-left);int dep2=DepthBTree(BT-right);if(dep1dep2)return dep1+1;elsereturn dep2+1;bool FindBTree(BTreeNode*BT,ElemType&x) /从二叉树中查找值为x的结点,若存在该结点则由x带回它的完整值if(BT=NULL)return false;elseif(BT-data=x)x=BT-data;return true;elseif(FindBTree(BT-left,x)return true; if(FindBTree(BT-right,x) return true; return false;void PrintBTree(BTreeNode*BT) /按照树的一种表示方法输出一棵二叉树if(BT!=NULL)coutdata;if(BT-left!=NULL|BT-right!=NULL)coutleft);if(BT-right!=NULL)coutright);coutleft);ClearBTree(BT-right);delete BT;BT=NULL;void PreOrder(BTreeNode*BT)if(BT!=NULL)coutdataleft);PreOrder(BT-right);void InOrder(BTreeNode*BT)if(BT!=NULL)InOrder(BT-left);coutdataright);void PostOrder(BTreeNode*BT)if(BT!=NULL)PostOrder(BT-left);PostOrder(BT-right);coutdata ;void LevelOrder(BTreeNode*BT) /按层遍历由BT指针所指向的二叉树const int MaxSize=30; /定义用于存储队列的数组长度BTreeNode*qMaxSize; /定义队列所使用的数组空间int front=0, rear=0; /定义队首指针和队尾指针,初始为空队BTreeNode*p;if(BT!=NULL) /将树根指针进队rear=(rear+1)%MaxSize;qrear=BT;while(front!=rear) /当队列非空时执行循环front=(front+1)%MaxSize; /使队首指针指向队首元素p=qfront; /删除队首元素coutdataleft!=NULL)rear=(rear+1)%MaxSize;qrear=p-left;if(p-right!=NULL)rear=(rear+1)%MaxSize;qrear=p-right; /while end/void main()system(color 75); /设置颜色以美观BTreeNode*bt;InitBTree(bt);char b999;printf(输入二叉树广义表字符串:n);cin.getline(b,sizeof(b);CreateBTree(bt,b);PrintBTree(bt);coutendl;printf(递归算法遍历:n);cout前序遍历为:;PreOrder(bt);coutendl; cout中序遍历为:;InOrder(bt);coutendl;cout后序遍历为:;PostOrder(bt);coutendl;printf(非递归算法遍历:n);cout按层遍历为:;LevelOrder(bt);coutendl;ElemType x;printf(请输入待查字符:);scanf(%c,&x);if(Find
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤炭产品购销合同
- 代收代付协议
- 湖中医针灸试题及答案
- 公务员面试题目益智题及答案
- 公务员创新与规范抓面试题及答案
- 妇科中医试题及答案
- 创意简约商铺租赁合同
- 2025年家具制造业个性化定制生产模式下的定制家具市场风险研究报告
- 2025年汽车行业供应链韧性构建与风险防范报告001
- 2025年文化旅游演艺项目智慧旅游与运营模式研究报告
- 热电厂锅炉安全知识培训课件
- 2025年汽车驾驶员技师资格证书考试及考试题库含答案
- 化工防护用品知识培训课件
- 中资企业在非洲的安全风险应对策略与启示
- 2025年高考(陕西、山西、青海、宁夏卷)历史真题及答案
- 中职中专入学开学第一课正视职业教育开启未来征程课件
- 护士急诊重症外出学习汇报
- 2025年期货高管考试题库及答案
- 2024年黑龙江省肇源县卫生系统招聘考试(护理学专业知识)题含答案
- 2025年江苏省南京市中考英语试卷
- 2025年内蒙古中考物理试卷(含答案)
评论
0/150
提交评论