第6讲 树和二叉树(二叉树的遍历)(完成).pptVIP

第6讲 树和二叉树(二叉树的遍历)(完成).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6讲 树和二叉树(二叉树的遍历)(完成)

数据结构与算法设计 任课教师:刘晋萍 Email: 785297343 @ QQ: 785297343 第六讲 树和二叉树 树的基本概念 树的定义 树的基本术语 二叉树 二叉树的定义 二叉树的性质 二叉树的基本操作 二叉树的存储结构 二叉树的遍历 树与二叉树 树与二叉树的转换 树的遍历 二叉树的遍历 二叉树的遍历 二叉树遍历的概念 二叉树的遍历 二叉树遍历的概念 二叉树遍历的方法 二叉树的遍历 二叉树遍历的概念 二叉树遍历的方法 二叉树遍历的应用 二叉树的遍历 二叉树遍历的概念 二叉树遍历的方法 二叉树遍历的应用 二叉树遍历的实现算法 二叉树遍历的概念 遍历的含义 访问结构中的所有元素且只访问一次 二叉树遍历的定义 按一定规律对二叉树中每个结点访问且仅访问一次 二叉树遍历的目的 在对二叉树的很多处理中,需要二叉树结点的一个线性序列 实质而言,遍历的目的就是对二叉树进行线性化处理,以得到一个结点的线性序列 对二叉树处理而言,遍历的目的是为二叉树的其他运算奠定基础 二叉树遍历的方法 有哪些方法 二叉树由三个基本部分组成: 根结点 左子树 右子树 遍历二叉树实质就是完成如下三项工作: 访问根结点 D 遍历左子树 L 遍历右子树 R 这三项工作按顺序组合可以得到6 种遍历方案: DLR DRL LDR RDL LRD RLD 对这6 种方案加上“先左后右”的限定,则得到如下3种遍历方案: DLR 称为先(根)序遍历 LDR 称为中(根)序遍历 LRD 称为后(根)序遍历 遍历方法的描述 二叉树遍历的方法 有哪些方法 二叉树由三个基本部分组成: 根结点 左子树 右子树 遍历二叉树实质就是完成如下三项工作: 访问根结点 D 遍历左子树 L 遍历右子树 R 这三项工作按顺序组合可以得到6 种遍历方案: DLR DRL LDR RDL LRD RLD 对这6 种方案加上“先左后右”的限定,则得到如下3种遍历方案: DLR 称为先(根)序遍历 LDR 称为中(根)序遍历 LRD 称为后(根)序遍历 遍历方法的描述 二叉树遍历的方法 有哪些方法 遍历方法的描述 先序遍历二叉树 若二叉树为空,则空操作; 否则 (1) 访问根结点; (2) 先序遍历左子树; (3) 先序遍历右子树。 中序遍历二叉树 若二叉树为空,则空操作; 否则 (1)中序遍历左子树; (2) 访问根结点; (3) 中序遍历右子树。 后序遍历二叉树 若二叉树为空,则空操作; 否则 (1)后序遍历左子树; (2)后序遍历右子树; (3)访问根结点。 二叉树遍历方法例1 二叉树遍历的应用 输出二叉树中的所有结点 输出二叉树中的叶子结点 求二叉树的深度 对每一个应用问题: 确定“访问” 的具体操作是什么 分析对遍历顺序的要求,确定用先序遍历、中序遍历还是后序遍历 给出解决问题的算法描述 思考练习: 用何种遍历实现对二叉树左右子树的交换? 在交换二叉树左右子树的遍历中,“访问”操作是什么? 写出一个实现二叉树左右子树交换的算法描述。 输出二叉树中的所有结点 分析: 该问题需要对二叉树进行遍历,即:对所有结点进行“访问”,且只访问一次 这里的“访问”就是“结点的输出” “访问” 顺序的确定 只要能对所有结点进行输出,没有结点输出顺序的要求,因此,按先序、中序和后序都可以 这里以先序为例 算法描述(基于先序遍历) 若二叉树为空,则空操作; 否则,依次做如下操作: (1) 输出根结点; (2) 输出左子树中的所有结点; (3) 输出右子树中的所有结点。 输出二叉树中的所有结点 算法描述(基于中序遍历) 若二叉树为空,则空操作; 否则,依次做如下操作: (1)输出左子树中的所有结点; (2)输出根结点; (3) 输出右子树中的所有结点。 输出二叉树中的所有结点 算法描述(基于后序遍历) 若二叉树为空,则空操作; 否则,依次做如下操作: (1)输出左子树中的所有结点; (2)输出右子树中的所有结点; (3)输出根结点。 输出二叉树中的所有结点例 输出二叉树中的叶子结点 分析: 该问题需要对二叉树中所有结点进行“访问”,且只访问一次 这里的“访问” 是“带判断的输出”,也就是:“是叶子

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档