




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、称采用这种结构存储的叫线索链表,二叉树的第三种存储方式。 其中指示前驱和后继的链域称为线索(也就是lchild 、 rchild 如果指向的不是左右孩子而是前驱和后继那么就称为线索)图中指向的是线索用虚线来画,否则用实线。 加上线索的二叉树称为线索二叉树 对二叉树以某种次序遍历使其变为线索二叉树的过程称为线索化 中序线索二叉树 先序线索二叉树 后序线索二叉树,整体结构:增设一个头结点,使其lchild指向二叉树的根结点,并将该结点作为遍历访问的第一个结点的前驱和最后一个访问结点的后继。,最后用头指针指向头结点,通过这个头指针找到该棵线索二叉树,0,0,0,0,1,1,1,1,1,1,0,1,6
2、.6.2 线索化二叉树 为了实现线索化二叉树,将前面二叉树结点的类型定义修改如下: typedef struct node ElemType data;/*结点数据域*/ int ltag,rtag; /*增加的线索标记*/ struct node *lchild;/*左孩子或线索指针*/ struct node *rchild;/*右孩子或线索指针*/ TBTNode;/*线索树结点类型定义*/,6.6.2 线索化二叉树 算法设计 typedef struct node ElemType data; int ltag,rtag; /增加的线索标记 struct node *lchild; s
3、truct node *rchild; TBTNode; TBTNode * CreateTBTNode(char *str) /建立二叉树(二叉链表的方式) TBTNode * CreaThread(TBTNode *b) /线索化二叉树,算法设计,TBTNode *CreaThread(TBTNode *b) /线索化二叉树,增加一个头结点,将整棵树作为他的左孩子,选择一种遍历方式,将二叉树线索化,生成某种访问顺序的线索化二叉树。,TBTNode *CreaThread(TBTNode *b) /*中序线索化二叉树*/ TBTNode *root; root=(TBTNode *)mall
4、oc(sizeof(TBTNode); /*创建头结点*/ root-ltag=0;root-rtag=1; root-lchild=b; pre=root; Thread(b); pre-rchild=root; pre-rtag=1; root-rchild=pre; return root; ,pre,1,Thread(p)算法思路是: *p 指向当前访问的结点 *pre指向前一访问的结点 采用中序遍历的方式 Thread (b-lchild); printf(%c ,b-data); Thread (b-rchild);,当前访问结点没有左孩子,就设置为线索,指向前驱 如果访问过的结点
5、没有右孩子,则设置为线索,指向后继,TBTNode *pre; /*全局变量*/ void Thread(TBTNode * /*递归调用右子树线索化*/ ,中序遍历(递归),6.6.3 遍历线索化二叉树 要遍历的第一个结点 依次找结点的后继 直到回到头结点,所有的问题归结为如何找后继结点?,D结点的后继:rtag=1,rchild指向后继,1,B结点的后继:rtag=0,rchild指向右孩子,从右孩子开始从左指针的方向找到第一个没有左孩子的结点S,if(p-rtag=1)p=p-rchild; else p=p-rchild; while(p-ltag=0) p=p-lchild; ,6.6.3 遍历线索化二叉树 从根结点开始找遍历的第一个结点,1,tb,P=tb-lchild,p,while(p-lchild!=tb) p=p-lchild;,6.6.3 遍历线索化二叉树 1、 要遍历的第一个结点 2、 依次找结点的后继 3、直到回到头结点,if(p-rtag=1)p=p-rchild; else p=p-rchild; while(p-ltag=0) p=p-lchild; ,void ThInOrder(TBTNode *tb) TBTNode *p=tb-lchild;/指向根结点 while(p-lchild!=tb) p=p-lchild; while (p!=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030草饲奶牛场行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030航空服务产业规划专项研究报告
- 2025-2030红外线理疗灯行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030电路板项目行业深度调研及投资前景预测研究报告
- 2025-2030猪肉市场前景分析及投资策略与风险管理研究报告
- 2025-2030牛肉干行业市场发展分析及发展趋势与投资研究报告
- 2025-2030汽车用板材市场前景分析及投资策略与风险管理研究报告
- 2025-2030水处理曝气机行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030条码识别系统产业发展分析及发展趋势与投资前景预测报告
- 2025-2030木材煤炭行业深度分析及发展趋势与投资前景研究报告
- “互联网”背景下云岭茶业公司的营销策略研究
- 一次性使用医疗器械、器具管理标准操作规程
- 中广核研究院热室设施建设项目 环境影响报告书(建造阶段)
- 阳光玫瑰葡萄种植技术
- 橡胶原材料检验标准
- 英语课堂游戏PPT-连词成句搭桥游戏
- 人类应不应该限制人工智能的发展辩论赛正方辩词一辩、二辩、三辩、四辩发言稿
- Unit5Poems单元整体教学设计-高中英语人教版(2019)选择性单元整体教学设计(视频课件教案)
- 高中英语高考词性转换汇总(5类词形转换、7组核心词汇转换)
- 非暴力沟通 情绪篇
- 氢氧化钙化学品安全技术说明书
评论
0/150
提交评论