全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #define num 100#define OK 1typedef int Status;typedef char DataType;typedef struct nodeDataType data;struct node *lchild,*rchild;BinTNode,*BinTree;int found;BinTNode *p;Status CreateBiTree(BinTree &bt)/按照先序遍历次序递归建立二叉树,参见教材P131算法6.4/ABCDEGF 对应于教材P127图6.8(b)char ch;printf(ch=);scanf(%c,&ch); getchar(); if (ch=)bt=NULL;else bt=(BinTNode *)malloc(sizeof(BinTNode); bt-data=ch; /生成根结点 CreateBiTree(bt-lchild); /构造左子树 CreateBiTree(bt-rchild); /构造右子树return OK;Status Inorder(BinTree bt)/二叉树非递归中序遍历算法 BinTNode *p,*s100; /定义数组栈 int i=0; /初始化栈 p=bt; do while(p!=NULL) /扫描根结点及其所有的左结点并将其地址入栈 si+=p; p=p-lchild; if (i0) /判断栈是否为空 p=s-i; /出栈 printf(%ct,p-data); /访问结点 p=p-rchild; /扫描右子树 while(i0|p!=NULL);return OK;/void NodePath(BinTree bt,BinTNode *ch)/求二叉树根结点到给定结点*p的路径 typedef enum FALSE,TRUEboolean; BinTNode *stacknum; /定义栈 int tagnum; int i,top; boolean find; BinTNode *s; find=FALSE; top=0; s=bt; do while(s!=NULL) /扫描左子树 top+; stacktop=s; tagtop=0; s=s-lchild; if(top0) s=stacktop; if(tagtop=1) if(s=ch) /找到ch,则显示从根结点到ch的路径 for(i=1;i%c,stacki-data); find=TRUE; else top-; s=stacktop; /endif if(top0 & !find) if(tagtop!=1) s=s-rchild; /扫描右子树 tagtop=1; else s=NULL; /endif /endlif while(!find & top!=0);void FindBT(BinTree bt,DataType x) if(bt!=NULL) & !found) if(bt-data=x) p=bt;found=1; else FindBT(bt-lchild,x); /遍历查找左子树 FindBT(bt-rchild,x); /遍历查找右子树 BinTNode *Findx(BinTree bt,DataType x)/按给定值查找结点 int found=0; /用found来作为是否查找到的标志 BinTree p=NULL; /置空指针 FindBT(bt,x); return(p);void main()BinTree bt; char ch1;int xz=1;while(xz)printf( 建立二叉树并求指定结点路径 n);printf(=n);printf( 1.建立二叉树的存储结构 n);printf( 2.求解二叉树的中序遍历 n);printf( 3.求二叉树指定结点的路径 n); printf( 0.退 出 系 统n);printf(=n);printf( 请选择:(0-3) n);scanf(%d,&xz); getchar();switch(xz) / 输入:ABCDEGF 输出: CBEGDFA case 1:printf(输入二叉树的先序序列结点值:n); CreateBiTree(bt); printf(二叉树的链式存储结构建立完成! n); break; case 2:printf(该二叉树的中序遍历序列是:n); Inorder(bt);printf(n); break; case 3:printf(输入要求路径的节点值:n); ch1=getchar(); p =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 63296-3:2025 EN-FR Portable multimedia equipment - Determination of battery duration - Part 3: Wearable powered loudspeaker equipment
- 【正版授权】 IEC 62153-4-7:2021/AMD1:2025 EN Amendment 1 - Metallic cables and other passive components test methods - Part 4-7: Electromagnetic compatibility (EMC) -Test method for meas
- 【正版授权】 ISO/IEC 23090-33:2025 EN Information technology - Coded representation of immersive media - Part 33: Conformance and reference software for haptics coding
- GB/T 46358-2025公共安全视频图像信息联网应用运维管理平台技术要求
- GB/T 46487-2025家具网络平台销售信息描述规范
- GB/T 18228-2025航空集装板网技术要求和试验方法
- 化工洗涤工操作测试考核试卷含答案
- 中国声音元件项目投资可行性研究报告
- 电网设备行业深度研究报告
- 宰鸡成套设备行业深度研究报告
- 徐悲鸿作品简介课件
- RB/T 131-2022绿色钢材产品评价要求
- 瑞士CYBELEC DNC 60系统使用说明书
- 生产部3S管理检查表
- 2022-2023学年贵州省威宁县市级名校中考一模化学试题含解析
- GB/T 34306-2017干旱灾害等级
- GB/T 29618.2-2017现场设备工具(FDT)接口规范第2部分:概念和详细描述
- GB/T 21838.1-2019金属材料硬度和材料参数的仪器化压入试验第1部分:试验方法
- GA/T 1133-2014基于视频图像的车辆行驶速度技术鉴定
- 产品设计调研课件
- 《室内环境检测》课件
评论
0/150
提交评论