4第五章树和二叉树.pptVIP

  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文档。上传文档
查看更多
4第五章树和二叉树

5.0 树的基本概念 5.1 二叉树及其抽象数据类型 5.3 二叉树的实现 5.2 二叉树周游 5.5 二叉树的应用 5.4 树的实现 5.0 树的基本概念 示例1:家族关系树 示例2:人事管理关系树 树的定义 树的表示 1、树型表示 2、凹入表表示 3、嵌套集合表示 基本定义1 基本定义2 基本定义3 5.1 二叉树及其抽象数据类型 5.1.1 二叉树的基本概念 5.1.2 二叉树的主要性质 5.1.3 二叉树的抽象数据类型 5.1.1二叉树的基本概念 二叉树的定义: 二叉树的五种不同形态 特殊二叉树 例: 基本定义 5.1.2 二叉树的主要性质 二叉树的主要性质2 性质3: 性质4 性质5 图 例 5.1.3 二叉树的抽象数据类型 二叉树的抽象数据类型续 5.3 二叉树的实现 5.3.1 二叉树的顺序表示 5.3.2 二叉树的链接表示 5.3.1 二叉树的顺序表示 二叉树的顺序定义 顺序存储的浪费 顺序二叉树的基本操作 将顺序二叉树置空 判断顺序二叉树是否为空 查找顺序二叉树中结点的父结点的下标 查找顺序二叉树中结点的左儿子的下标 查找顺序二叉树中结点的右儿子的下标 创建顺序二叉树 输出顺序二叉树 1、将顺序二叉树置空 2、判断顺序二叉树是否为空 3、查找顺序二叉树中结点的父结点的下标 4、查找顺序二叉树中结点的左儿子的下标 5、查找顺序二叉树中结点的右儿子的下标 6、创建顺序存储的二叉树 方法一:顺序输入每个节点的数据,空节点的权为0 创建方法一程序 创建顺序存储的二叉树 方法二:顺序输入每个节点的编号,和该节点的数据。空节点不要输入。 创建方法二程序 7、输出顺序二叉树(括号表示) 算法思想:(递归) 顺序二叉树的括号输出程序 示例的主程序与结果 5.3.2 二叉树的链接表示 二叉链树结点类型的定义 二叉树链表表示的示例 链接二叉树的基本操作 创建链接二叉树 输出链接二叉树 在链接二叉树中查找结点 求链接二叉树的深度 1、创建链接二叉树 示 例 示例树生成过程 源程序 源程序 创建链接二叉树的方法二 示 例 创建链接二叉树的递归方法程序 2、输出链接二叉树(括号表示) 输出链接二叉树(凹入表示) 输出链接二叉树(旋转90度表示) 3、在链接二叉树中查找结点 4、求链接二叉树的深度 5.2 二叉树的周游 5.2.1 什么是周游 5.2.2 周游的分类 5.2.1 什么是周游 5.2.2 周游的分类 1、深度优先周游 DLR 前序周游 前序周游算法 LDR 中序周游 中序周游算法 LRD 后序周游 后序周游算法 2. 广度优先周游 例:证明 例: 二叉树的上机作业 5.5 二叉树的应用 5.5.1 二叉排序树 5.5.2 哈夫曼树 5.5.1 二叉排序树 二叉排序树示例 二叉排序树结点的结构描述 1. 二叉排序树的结点插入 二叉排序树的结点插入流程 二叉排序树的插入程序 二叉排序树的结点插入程序(续) 2. 二叉排序树生成 二叉排序数的生成程序 二叉排序数的生成程序(续) 3. 二叉排序树的查找 二叉排序树的查找程序 5.5.2 哈夫曼树(最优二叉树) 哈夫曼树的构造法 示例图 哈夫曼树的构造法流程图 树的应用上机作业 5.4 树的实现 孩子兄弟表示法 孩子兄弟表示法的数据结构 孩子兄弟表示法的示例 思 考 结束! 前序周游二叉树算法的框架是 若二叉树为空,则空操作; 否则 访问根结点 (D); 前序周游左子树 (L); 前序周游右子树 (R)。 表达式语法树 周游结果(前序序列) - + a * b - c d / e f void TreePreOrder(LINKTREE *t) //链接二叉树的前序周游 { if (t!=NULL) { printf(%d\t,t-data); //访问结点*t TreePreOrder(t-lchild); //前序周游*t的左子树 TreePreOrder(t-rchild); //前序周游*t的右子树 } } 中序周游二叉树算法的框架是: 若二叉树为空,则空操作; 否则 中序周游左子树 (L); 访问根结点 (D); 中序周游右子树 (R)。 表达式语法树 周游结果(中序序列) a + b * c - d - e / f void TreeInOrder(LINKTREE *t) //链接二叉树的中序周游 { if (t!=NULL) { TreeInOrder(t-lchild); //中序周游*t的左子树 printf(%d\t,t-data); //访问结点*t TreeInOrder(t-rchild); //中序

文档评论(0)

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

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

1亿VIP精品文档

相关文档