- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[2018年最新整理]ch06-树和二叉树(二)
二叉树的部分操作 遍历二叉树 线索二叉树 遍历二叉树 遍历二叉树 按某种路径(或策略)访问二叉树中的每个结点,且对每个结点只访问一次。这样,二叉树中的结点按被访问顺序形成一个线性序列。 用于信息查询或逐一处理,是二叉树大部分其他操作的基础 遍历二叉树 二叉树的三个基本单元 根结点、左子树、右子树 符号约定 L:表示遍历左子树 D:表示访问根结点 R:表示遍历右子树 对二叉树的可能遍历顺序 DLR, LDR, LRD, DRL, RDL, RLD六种 若限定先左后右,则有DLR, LDR, LRD三种,分别称之为先序遍历,中序遍历和后序遍历,形成先序序列,中序序列和后序序列 遍历二叉树的操作 先序遍历二叉树(PreOrderTraverse) 访问根结点 先序遍历左子树 先序遍历右子树 中序遍历二叉树(InOrderTraverse) 中序遍历左子树 访问根结点 中序遍历右子树 后序遍历二叉树(PostOrderTraverse) 后序遍历左子树 后序遍历右子树 访问根结点 遍历二叉树的操作 遍历二叉树的操作 遍历二叉树的操作 遍历二叉树的操作 遍历二叉树的算法 算法实现 递归实现 非递归实现 二叉树的存储结构 采用二叉链表结构 遍历二叉树的递归算法 遍历二叉树的递归算法 遍历二叉树的递归算法 按先序序列建立二叉树的算法 按先序序列建立二叉树的算法 输入A B C _ _ D E _ G _ _ F _ _ _ 生成的二叉树及其存储结构为 按先序序列建立二叉树的算法 若希望建立如下二叉树对应的存储结构,应输入的字符序列是 几个问答 具有n个结点的不同形态的二叉树有多少棵? 有 棵,如n=3时,有5种不同形态 已知结点先序序列和中序序列,是否可以唯一地确定一棵二叉树? 能,如先序序列ABCDEFG,中序序列CBEDAFG,对应的二叉树为 几个问答 已知结点先序序列和后序序列,是否可以唯一地确定一棵二叉树? 不能, 如先序序列ABCK,后序序列BKCA 已知结点中序序列和后序序列,是否可以唯一地确定一棵二叉树? 能,如中序序列BKCA,后序序列BKCA 作业 分别按先序、中序和后序顺序列出下图二叉树的结点序列 用递归算法实现:交换二叉树中所有结点的左右子树。如: 线索二叉树 线索二叉树 将二叉树的每个结点按某种遍历序列进行线性化(也称穿线或线索化, Threading) 在线索树上进行遍历,只需先找到序列中的第一个结点,然后依次找结点后继直至后继为空而止。因此遍历速度将会提高 二叉树中结点的前驱与后继 按某种遍历序而言,如: 结点B在先序下的前驱为A,后继为C 结点B在中序下的前驱为C,后继为E 结点B在后序下的前驱为D,后继为A 线索二叉树 线索二叉树与普通二叉树的区别 利用普通二叉树的空链域(n个结点的二叉树有n+1个空链域)来存放指向结点前驱或后继的指针,形成线索 依照某种遍历顺序对二叉树进行线索化后,形成了所谓的“某序线索二叉树” 线索二叉树 线索二叉树 线索二叉树 线索二叉树中结点的存储结构 ltag=0表示结点有左孩子,并由lchild指向 ltag=1表示结点没有左孩子, lchild指向该结点的前驱(线索) rtag=0表示结点有右孩子,并由rchild指向 rtag=1表示结点没有右孩子, rchild指向该结点的后继(线索) 用这种结点结构构成的二叉链表的变形称为线索链表 线索二叉树 线索二叉树 通常,若在程序中所用二叉树需经常遍历或查找结点在遍历所得线性序列中的前驱和后继,则应采用线索链表作存储结构 在线索树上进行遍历,只需先找到序列中的第一个结点,然后依次找结点后继直至后继为空而止 如何寻找指定结点的前驱继或后继呢? 线索二叉树 以中序线索二叉树为例,寻找结点p的后继 即:寻找指定结点p在中序下的后继 线索二叉树 在中序线索二叉树中找结点p在中序下的前驱 即:寻找指定结点p在中序下的前驱 线索二叉树 遍历中序线索二叉树的算法 线索二叉树 线索化二叉树(或建立线索二叉树)的算法 实际上就是在遍历过程中修改空指针域的过程 算法思路: 假设原有二叉树T已经按照线索链表结构建立起来,但尚未通过空指针域进行穿线 建立并初始化穿线二叉树的头结点,并用Thrt指向 之后,在中序遍历二叉树T的基础上对空指针域进行修改,使得左空指针域指向其前驱,右空指针域指向其后继。为了记录遍历过程中访问结点的先后关系,附设了指针pre始终指向刚刚访问过的结点,而当前结点用指针p来指向 线索二叉树 如:以中序遍历建立中序线索链表的算法 线索二叉树 建立中序线索二叉树 建立中序线索二叉树 建立中序线索二叉树 * D L R A B C 先序序列:ABC 中序序列:BAC
您可能关注的文档
- [2018年最新整理]CAD中公差标注技巧.ppt
- [2018年最新整理]CAD中特殊符号的输入方法.doc
- [2018年最新整理]CAD三维制图之入门2.ppt
- [2018年最新整理]CAD中绘图比例问题.doc
- [2018年最新整理]CAD作图规范.doc
- [2018年最新整理]Cad使用技巧.ppt
- [2018年最新整理]CAD产品几何造型基础.ppt
- [2018年最新整理]CAD使用文字和表格.ppt
- [2018年最新整理]cad入门教程,绝对实用.doc
- [2018年最新整理]CAD入门第04章.ppt
- [2018年最新整理]ch05-方差分析.ppt
- [2018年最新整理]ch06三维图形变换及观察.ppt
- [2018年最新整理]CH06循环控制.ppt
- [2018年最新整理]ch08-2同时性的相对性时间量度的相对性.ppt
- [2018年最新整理]ch08马尔可夫链和马尔可夫决策过程.ppt
- [2018年最新整理]ch09-1库仑定律静电场的叠加原理电场强度.ppt
- [2018年最新整理]ch09-7静电场的能量稳恒磁场.ppt
- [2018年最新整理]ch09-1静电场.ppt
- [2018年最新整理]ch1-3条件概率及全概率公式.ppt
- [2018年最新整理]Ch09-变形动画、色变动画.ppt
最近下载
- 2025年证券从业之金融市场基础知识题库500道附答案(考试直接用) (2).docx VIP
- 乡村道路硬化施工组织设计方案精选.doc VIP
- DB4212T 62-2024 12345政务服务便民热线“一人多次”诉求处理规范.docx VIP
- 2025年党政领导干部拟任县处级资格考试试题全套.doc VIP
- (精品!)2024年宁波市科技局下属事业单位招聘笔试真题.pdf VIP
- 新人教版七年级上册英语人称代词-物主代词练习.docx VIP
- GB 45673-2025《危险化学品企业安全生产标准化通用规范》之“5.3 安全生产信息与合规审核”审核检查单(雷泽佳编制-2025A0).pdf VIP
- 公务员申论培训视频.doc VIP
- 《新编简明英语语言学教程》1-6章复习题集..doc VIP
- 2t剪叉式升降平台设计本科毕业设计.doc VIP
文档评论(0)