- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
转换、构建与线索化第八章:树主讲:周翔
树与二叉树的相互转换树与二叉树的相互转换ABEDCDECAB??????孩子兄弟表示法
树与二叉树的相互转换树与二叉树的相互转换ABEDCECAB?D?????二叉链表
树与二叉树的相互转换树转化为二叉树方法1:将树的孩子兄弟表示法看成是二叉树的二叉链表存储结构,即可实现转化。方法2:树中所有相邻兄弟之间加一条连线;对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其他孩子结点之间的连线;以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。
树与二叉树的相互转换ABGECFDHABDECFGHABDECFGH
树与二叉树的相互转换将此二叉树还原为树ABDEFGHIJKMLC
树与二叉树的相互转换第一步:加线(虚线),将树中每条右链中的所以右孩子都连接到右链链头结点的父结点上;ABDEFGHIJKMLC
树与二叉树的相互转换第二步是去线,将原二叉树中父结点与其右孩子的连线抹去;ABDEFGHIJKMLC
树与二叉树的相互转换第三步整理,去掉原二叉树中的连接线后,将新的连接线由虚线变为实线,调整树中结点的层次结构;ABDEFGHIJKMLCABDEFGHIJKMLC
树、森林与二叉树的相互转换森林转化为二叉树的方法将森林中的每棵树转换成对应的二叉树;每一棵二叉树不动,从第二棵二叉树开始,依次将后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子;当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。
树、森林与二叉树的相互转换ABDCEFGHIJABDCEFGHIJ
树、森林与二叉树的相互转换ABDCEFGHIJABDCEFGHIJ
树、森林与二叉树的相互转换二叉树还原为森林或树的方法若某结点是其双亲结点的左孩子,则把该结点的右孩子、右孩子的右孩子……都与该结点的双亲结点用线连起来;删掉原二叉树中所有双亲结点与右孩子结点的连线;整理前两步所得到的树或森林,使之结构层次分明。
树、森林与二叉树的相互转换ABDCEFGHIJABDCEFGHIJ
二叉树的构建——中序和先序中序和先序构建二叉树想要通过遍历结果来确定一棵树需要将两种顺序的遍历结果结合起来。结合方案有以下两种:中序遍历结果和先序遍历结果一起可以确定一棵二叉树;中序遍历结果和后序遍历结果一起可以确定一棵二叉树;即便结合先序遍历和后序遍历的结果也无法确定一棵二叉树的的结构,因为这两种遍历结果结合只能求解出根,不能确定左子树什么时候结束,右子树什么时候开始。
二叉树的构建——中序和先序中序和先序构建二叉树根据中序遍历和先序遍历结果确定二叉树结构的基本思路如下:(1)通过先序遍历找到根结点,再通过根节点在中序遍历的位置找出左子树、右子树;(2)根据左子树在先序遍历结果的顺序,找到左子树的根结点,视左子树为一棵独立的树,转步骤(1);(3)根据右子树在先序遍历结果的顺序,找到右子树的根结点,视右子树为一棵独立的树,转步骤(1);
二叉树的构建——中序和先序中序和先序构建二叉树假如有一棵二叉树,它的先序遍历结果为:ADEBCF;中序遍历结果为:DEACFB。则确定此二叉树的步骤如下:第一步:由先序遍历结果可知,此二叉树的根结点为A;再结合中序遍历结果,可知A的左子树为DE,右子树为CFB;
二叉树的构建——中序和先序中序和先序构建二叉树假如有一棵二叉树,它的先序遍历结果为:ADEBCF;中序遍历结果为:DEACFB。则确定此二叉树的步骤如下:第二步:A的左子树中包含有DE两个结点,由先序遍历结果可知,D结点在E的前面,那么D是左子树的根结点;又因在中序遍历中,E结点在根结点D之后,先遍历D后遍历E,说明D是根结点,E是D的右孩子;
二叉树的构建——中序和先序中序和先序构建二叉树假如有一棵二叉树,它的先序遍历结果为:ADEBCF;中序遍历结果为:DEACFB。则确定此二叉树的步骤如下:第三步:由整棵树的先序遍历结果可知右子树的先序遍历结果为:CFB,因此B是右子树的根结点;又因为在中序遍历中,CF都在B之前,说明C、F是B的左子树结点;对以B为根节点的子树继续分析:在先序遍历中,C在F的前面,说明在B的左子树中,C是根结点;在中序遍历中:F在C的后面,说明F是C的右孩子;
二叉树的构建——中序和先序中序和先序构建二叉树这三个步骤分别确定了二叉树的根结点、左子树与右子树,这样就确定了一棵二叉树。
二叉树的构建——中序和先序已知一棵二叉树的以下两种遍历结果,试画出这棵二叉树。前序遍历的结果是ABECDFGHIJ中序遍历的结果是EBCDAFHIGJABCEDFGIHJ
二叉树的构建——中序和先序一棵二叉树前序遍历和中序遍历序列如下所示:前序:DACEBHFGI;中序:DCBEHAGIF;试画出二叉树结构,并简述求算
您可能关注的文档
- 数据结构——基于Python语言(微课版) 课件 T1_C语言基础.pptx
- 数据结构——基于Python语言(微课版) 课件T1_绪论(什么是数据结构).pptx
- 数据结构——基于Python语言(微课版) 课件T2_线性表(顺序表).pptx
- 数据结构——基于Python语言(微课版) 课件T3_线性表(单链表).pptx
- 数据结构——基于Python语言(微课版) 课件T4_线性表(双向链表和循环链表).pptx
- 数据结构——基于Python语言(微课版) 课件T5_线性表(应用与比较).pptx
- 数据结构——基于Python语言(微课版) 课件T7_栈与队列(队列).pptx
- 数据结构——基于Python语言(微课版) 课件T10_数组与广义表(矩阵).pptx
- 数据结构——基于Python语言(微课版) 课件T11_数组与广义表(广义表).pptx
- 数据结构——基于Python语言(微课版) 课件T12_基于线性表的查找算法.pptx
- 数据结构——基于Python语言(微课版) 课件T18_基于树的查找算法.pptx
- 数据结构——基于Python语言(微课版) 课件T19_基于树的排序算法.pptx
- 数据结构——基于Python语言(微课版) 课件T23_计算式查找法.pptx
- 数据结构——基于Python语言(微课版) 课件T22_图(应用).pptx
- 数据结构——基于Python语言(微课版) 课件T21_图(遍历).pptx
- 数据结构——基于Python语言(微课版) 课件T15_树(二叉树).pptx
- 数据结构——基于Python语言(微课版) 课件T20_图(表示法).pptx
- 数据结构——基于Python语言(微课版) 课件T14_树(树).pptx
- 数据结构——基于Python语言(微课版) 课件T9_串(模式匹配).pptx
- 数据结构——基于Python语言(微课版) 课件T6_栈与队列(栈).pptx
最近下载
- 2023年06月国家国防科技工业局核技术支持中心社会招考聘用笔试历年难、易错考点试题含答案解析.docx
- 人教版七年级上册英语单词表2115.pdf VIP
- 台达 VFDB4132系列刹车模块说明书.pdf
- 河南省郑州市外国语学校2025-2026学年高三上学期第三次阶段检测语文试题(含答案及解析).docx VIP
- 中国马克思主义与当代知到智慧树期末考试答案题库2024年秋北京工业大学.docx VIP
- 2024最新不予立案通知书.doc VIP
- 工业网络技术教材PPT10 Modbus TCP通信及应用.pptx VIP
- 2025年中国亚克力镜面板市场调查研究报告.docx
- 账号内容打造方案.docx VIP
- 锋芒全系列笔记低吸有道系统课程.pdf VIP
原创力文档


文档评论(0)