下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<stdio.h>#include<string.h>^include<stdlib.h>tvpedefstmctNode /*树结点类型*/mtmfo; /*数据域*/stmctNode*parent;/*父结点*/stmctNode*lcluld;/*左孩子结点*/stmctNode*rchild;/*右孩子结点*/}PNode;stmctStack严栈结点类型*/iiit* pre;iiit* in;iiitn;PNodeparent;};PNode *piejnt 11)#声明/*前序遍历*/voidpre_order(PNode*root){if(ioot!=NULL){priiitf(n%d'\root->mfb);pie_order(ioot->lchild);pie_ordei(ioot->rchild);}}/*中序遍历*/voidin_oidei(PNodeFoot){if(ioot!=NULL){in_order(root->lcliild);priiitf(n%d'\root->mfb);in_order(root->rcliild);}/*后序遍历♦/voidpost_ordei(PNode*root)post_order(root->lcliild);post_order(root->rcliild);mtmam(void)PNode*ioot;intpre[50]={l,2A8,10,5,9,3,6,7};mtin[50]={&10,4,2,5,9,1,6,3,7};/*建树*/root=Iiiit_tree(pie4n,10);pnntf("\n前序遍历结呆:\n”);pre_ordei(root);pnntf("\n中序遍历结呆:\n”);m_oider(root);pnntf("\n后序遍历结呆:\n”);poscorder(root);pnntf(M\nM);retuin0;PNode*Iint_tiee(mt*piejnt*in、intn)PNode*ioot;mtif(n<=0)return(NULL);root=(PNode*)nialloc(sizeof(PNode));root->info=pre[0];ioot->lchild=root->rcluld=NULL;1=0;wliile(i<n){if(pre[0]=m[i])break;++i;}p=pre+l;q=ui;ioot->lchild=Init_tree(p,q4);p=pre+i+l;q=in+i+];ioot->rcliild=Init_tree(p,q,n-i-1);retuin(ioot);}树的形状1TOC\o"1-5"\h\z> tI >/ \2 3/\/\4 5 6 7/\8 9\10这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。一、已知二叉树的前序序列和中序序列,求解树。•确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。2、 求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。3、 递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。二、已知二叉树的后序序列和中序序列,求解树。1、 确定树的根。树根是当前树中所有元素在后序遍历中最后出现的元素。2、 求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。3、 递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。举例说明:根据已知求解二叉树中序序列HLDBEKAFCG后序序列LHDKEBFGCA1、 在后序序列LHDKEBFGCA中最后出现的元素为A,HLDBEK|A|FCG2、 在后序序列LHDKEB中最后出现的元素为E,HLD|B|EK|A|FCG3、 在后序序列LHD中最后出现的元素为D,HL!D|B|EK|A|FCG4、 在后序序列LH中最后出现的元素为H,H|L|D]B|EK|A|FCG5、 在后序序列KE中最后出现的元素为E,H|L|D|B|E|K|A|FCG5、 在后序序列FGC中最后出现的元素为C,H|L|D|B|E|K|A|F|C|G6、 所有元素都己经定位,二叉树求解完成。A/\B C/\/\DEFG代码的运行结果C:\Users\admin\Desktop\S湄结构\tt\bin\Debug\tt.exe前序遍历结果:12481059367中序遍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年城乡统筹发展与房地产市场
- 中小学学科教学计划模板范本
- 招商经理岗位职责与能力培养方案
- 篮球专项技巧教学设计方案
- 医疗设备维护记录管理流程
- 2026年桥梁设计中的成本效益优化分析
- 2026年合同解除的法律依据
- 2026年绿色施工的国际标准与国内实践
- 房建项目监理管理细则与实例
- 2026年土木工程验收标准动态
- 美术教学中的跨学科教学策略
- 罗茨鼓风机行业发展趋势报告
- 慢性阻塞性肺疾病患者非肺部手术麻醉及围术期管理的专家共识
- 灯谜大全及答案1000个
- 中建办公商业楼有限空间作业专项施工方案
- 急性胰腺炎护理查房课件ppt
- 初三数学期末试卷分析及中考复习建议课件
- GB/T 4074.8-2009绕组线试验方法第8部分:测定漆包绕组线温度指数的试验方法快速法
- 人教版四年级上册语文期末试卷(完美版)
- 防空警报系统设计方案
- 酒店管理用水 酒店厨房定额用水及排水量计算表分析
评论
0/150
提交评论