- 1、本文档共93页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课件(树和叉树)
数据结构 第六章 树和二叉树 * 6.1 树的类型定义 6.1 树的类型定义 6.1 树的类型定义 和线性结构的比较 树的表示方法: 基本术语 6.2 二叉树的类型定义 二叉树的定义 二叉树的5种基本形态 二叉树的主要基本操作: 二叉树的重要特性: 二叉树的重要特性: 二叉树的重要特性: 满二叉树和完全二叉树 二叉树的重要特性 完全二叉树的特点: 6.3 二叉树的存储结构 1.顺序存储结构 完全二叉树 一般二叉树 1.顺序存储结构 1.顺序存储结构 (2)二叉链表法 2)二叉链表法 二叉树的二叉链表存储表示 6.3 二叉树的存储结构 链式存储结构的算法: 三叉链表法 三叉链表法 二叉树的三叉链表存储表示 6.4 二叉树的遍历 一、问题的提出 6.4 二叉树的遍历 二、先左后右的遍历算法 6.4 二叉树的遍历 示例 6.4 二叉树的遍历 三、算法的递归描述 四、先序遍历算法的非递归描述 6.4 二叉树的遍历 四、先序遍历算法的非递归描述 中序遍历的非递归算法 五、遍历算法的应用举例: 1、统计二叉树中叶子结点的个数(先序遍历) 五、遍历算法的应用举例 2、求二叉树的深度(后序遍历) 五、遍历算法的应用举例 3、复制二叉树(后序遍历) 五、遍历算法的应用举例 3、复制二叉树(后序遍历) 6.5 线索二叉树 一、何谓线索二叉树? 6.5 线索二叉树 何谓线索二叉树? 6.5 线索二叉树 6.5 线索二叉树 线索链表的结构描述: 6.5 线索二叉树 找结点的后继 6.5 线索二叉树 找结点的后继 6.5 线索二叉树 二、线索链表的遍历算法: 6.5 线索二叉树 二、线索链表的遍历算法: 6.5 线索二叉树 三、如何建立线索链表? 6.5 线索二叉树 三、如何建立线索链表? 6.6 树和森林 一、树的三种存储结构 1. 双亲表示法: 一、树的三种存储结构 一、树的三种存储结构 2. 孩子链表表示法: 一、树的三种存储结构 2、孩子链表表示法: 一、树的三种存储结构 带双亲的孩子链表表示法: 一、树的三种存储结构 3、树的二叉链表(孩子-兄弟)存储表示法 二、树、树林与二叉树的转换 1、树、树林转换为二叉树 二、树、树林与二叉树的转换 树转换为二叉树 树转换为二叉树 事例 树转换为二叉树 事例 2、森林转换成二叉树 转换规则: 3、二叉树转换为树 转换规则: 4、二叉树转换成森林 转换规则: 二叉树转换成森林 示例 三、 树和森林的遍历 (1) 先根次序遍历的规则: 树的遍历 (2) 后根次序遍历的规则: 树的遍历 (3) 广度优先遍历(层次序遍历) : 森林的遍历 (1) 先根次序遍历的规则: 森林的遍历 (2) 中根次序遍历的规则: 森林的遍历 (3) 广度优先遍历(层次序遍历) : 6.7 哈夫曼树与哈夫曼编码 一、最优树的定义 二、如何构造最优树 二、如何构造最优树 三. 赫夫曼编码 三. 赫夫曼编码 三. 赫夫曼编码 三. 赫夫曼编码 三.哈夫曼编码 三.哈夫曼编码 举例 设计示例: 6.8 哈夫曼树与哈夫曼编码 赫夫曼编码的实现 构造赫夫曼树和求赫夫曼编码的算法如下: 构造赫夫曼树和求赫夫曼编码的算法如下: 本章小结 Thank you ! 1.对有左子树的所有结点与其左孩子的右链上的所有结点进行连接; 2.删除以前所有的旧右链。 A B E D C H J I G F A B E D C H J I G F 如果B={root, LB, RB} 是一棵二叉树,则可按如下规则转换成森林F={T1, T2, …, Tm} (1)若B为空,则F为空树; (2)若B非空,则为森林中第一棵树的根Root(T1)即为 B的根root, T1中根结点的子树森林F1={T11, T12,…, T1m1} 是有B的左子树LB转换而来的森林;F中除T1之外的其余树组成的森林F’={T2, T3, … , Tm}是由B的右子树转换而成的。 A B C F D G E H I A B C F D G E H I ? 若树T为空, 返回;否则 ? 访问T的根结点; ? 依次先根次序遍历各子树T1、T2……Tm; 右图遍历结果为:A B D E H I J C F G A B E D C H J I G F ? 若树T为空,返回;否则 ? 依次后根次序遍历各子树T1、T2……Tm; ? 访问根结点。 右图遍历结果为:D H I J E B F G C A A B E D C H J I G F ? 若树T为空,返回;否则 ? 访问根结点; ? 若第1,……i(i≥1)层结点已被访问,则从左到右依次访问i+1层结点; 右图遍历结果为
文档评论(0)