数据结构--第六章树和二叉树应用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构--第六章树和二叉树应用

树→二叉树举例: A B C D G E F H × × × A B E D H C F G 在同胞兄弟之间加虚线; 保留结点与左边第一个孩子之间的连线,去掉其余连线; 顺时针旋转45度。 * 森林转化成二叉树 将森林中的每棵树转换成对应的二叉树; 按照给出的森林中树的次序,依次将后一棵二叉树插入为前一棵二叉树根结点的右子树; * 森林→二叉树举例: 将森林中的每棵树转换成对应的二叉树; 按照给出的森林中树的次序,依次将后一棵二叉树插入为前一棵二叉树根结点的右子树; G H I J A B C D E F A B D C F E G H I J A B D C F E G H I J * 二叉树转化成树 前提:二叉树的根结点无右孩子 1、加线:若某结点i是双亲结点的左孩子,则将该结点的右孩子以及连续地沿着此右孩子的右链不断搜索到的所有右孩子都分别与结点i的双亲用虚线连起来。 2、抹线:抹掉原二叉树中所有双亲结点与右孩子的连线。 3、归整化:将图形归整化,使各结点按层次排列且将加上去的虚线变成实线。 * 二叉树→树举例: A B E D H C F G 1、加线:若某结点i是双亲结点的左孩子,则将该结点的右孩子以及当且仅当连续地沿着此右孩子的右链不断搜索到的所有右孩子都分别与结点i的双亲用虚线连起来。 2、抹线:抹掉原二叉树中所有双亲结点与右孩子的连线。 3、归整化:将图形归整化,使各结点按层次排列且将加上去的虚线变成实线。 × × × A B D C E G F H * 二叉树转化成森林 前提:二叉树的根结点必有右孩子 1、抹线:将二叉树的根结点与其右孩子i的连线及连续地沿着i的右链不断搜索到的所有右孩子间的连线全部抹掉,这样得到若干 棵孤立的二叉树。 2、还原:将各棵孤立的二叉树按二叉树还原为一般树的方法还原为树。 * 二叉树→森林举例: 1、抹线:将二叉树的根结点与其右孩子i的连线当且仅当连续地沿着i的右链不断搜索到的所有右孩子间的连线全部抹掉,这样得到若干棵孤立的二叉树。 2、还原:将各棵孤立的二叉树按二叉树还原为一般树的方法还原为树。 A B D C F E G H I J G H I J A B C D E F × × × * 6.6 哈夫曼树与哈夫曼编码 哈夫曼树的定义 如何构造最优树 前缀编码 * 哈夫曼树 哈夫曼树最典型、最广泛的应用是在编码技术上,利用哈夫曼树,可以得到平均长度最短的编码。这在通讯领域是极其有价值的。 计算机程序操作码的优化也可以利用哈夫曼树实现。 * 路径:从一个结点到另一个结点之间的分支 序列。 路径长度:从一个结点到另一个结点所经过 的分支条数。 树的路径长度:树中每个结点与根之间的路径 长度之和(PL)。 a 例: PL(a)=1+1+2+2+2+2=10 b PL(b)=1+1+2+2+3+3=12 一、基本概念: * 带权路径长度:在树形结构中,我们把从树根到某一结点的路径长度与该结点权的乘积,称做该结点的带权路径长度。 树的带权路径长度:树中所有叶子结点的带权路径长度之和,称为树的带权路径长度,通常记为WPL: WPL=?wi×li i=1 n 其中:n为叶子结点的个数;wi为第i个叶子的权值; li为第i个叶子结点的路径长度。 结点的权:给树中每个结点赋予一个具有实际意义的数值,我们称该数值为这个结点的权。 * 例如下图所示的三棵二叉树 WPL(a)=7×2+5×2+2×2+4×2=36 其带权路径长度分别为: 2 4 5 7 a 7 5 4 b 2 5 4 2 c 7 WPL(b)=4×2+7×3+5×3+2×1=46 WPL(c)=7×1+5×2+2×3+4×3=35 * 什么样的树的带权路径长度WPL最小? 例如:给定一个权值序列{2, 4, 5, 7},可构造多种二叉树的形态: 问题: 2 4 5 7 a 7 5 4 b 2 5 4 2 c 7 WPL(a) = 36 WPL(b) = 46 WPL(c)=35 其带权路径长度分别为: * 在各种形态的含有 n个叶子结点的 二 叉树中, 必存在一棵(几棵)其带权路径长度值WPL 最小的树,被称为“最优二叉树” 。 特征:在最优二叉树中没有度数为 1 的结点(可用反证法证明); 含 n个叶子结点的最优二叉树的总结点数为 2*n-1 (依据二叉树性质三)。 最优二叉树的构造方法最早由哈夫曼研究,所以又称为“哈夫曼树”。 * 二、如何构造最优树(哈夫曼算法) Step 1: 根据给定的 n 个权值 {w1,

文档评论(0)

aena45 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档