数据结构复习1-7.ppt

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

树和森林-树的存储结构(续) 树的存储结构 孩子兄弟表示法 树 孩子兄弟链 叶子 孩子域为空 无右子树 度 沿兄弟域来统计 深度 沿孩子域来统计 A C F E B D G J H I A ^ B ^ E ^ C D ^ ^ F ^ G ^ ^ I ^ J ^ ^ H 树和森林-森林与二叉树的转换 森林与二叉树的转换 森林的孩子兄弟链?二叉树的二叉链 B C D G I J E K A F H A B D C E H I K J F G 森林与二叉树的转换(2) 树和森林-树(森林)的遍历 树(森林)的遍历 先根遍历 ?对应二叉树的先序遍历 后根遍历 ?对应二叉树的中序遍历 B C D G I J E K A F H A B D C E H I K J F G 先根:ABCDEFGHIKJ 后根:BCEDAGFKIJH 赫夫曼树及其应用 最优树 路径长度:路径上的分支数目 树的路径长度:树根到每一结点的路径长度之和 结点的带权路径长度:该结点到树根之间的路径长度与结点上权的乘积 树的带权路径长度:树中所有叶子结点的带权路径长度之和 最优二叉树或赫夫曼树:树的带权路径长度最小的二叉树 不同带权路径长度的二叉树 a b c d 0 1 0 0 1 1 7 5 2 4 0 0 0 1 1 1 c d b a 7 5 2 4 WPL = 2*(7+5+2+4)=36 WPL=1*7+2*5+3*(2+4)=35 赫夫曼算法 赫夫曼算法 根据给定的n个权值构成n棵二叉树的集合F,其中每棵二叉树中只有一个带权值的结点; 在F 中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和; 在F 中删除这两棵树,同时将新得到的二叉树加入到F 中; 重复2)和3),直到F 中只含一棵树为止。 赫夫曼树的特点 赫夫曼树(最优二叉树)的特点 无度为1的结点 若有n个权值,则形成的赫夫曼树中有2n-1个结点 赫夫曼树的高度 h 与结点数 m 之间的关系 若赫夫曼树的高度为 h ( h 0 ),则树中 最多有 2h-1 个结点?满二叉树 最少有2h-1个结点 赫夫曼编码 赫夫曼编码 前缀编码:某字符的编码不是其他字符编码的前缀 赫夫曼编码过程: 1) 由n个权值,形成包含有2n-1个结点的赫夫曼树 2) 约定赫夫曼树的左分支表示字符‘0’,右分支表示字符‘1’,则从根结点到叶子结点的路径上的分支字符组成的字符串作为该叶子结点字符的编码。 霍夫曼编码(1) 主要用途是实现数据压缩。 设给出一段报文: CAST CAST SAT AT A TASA 字符集合是 { C, A, S, T },各个字符出现的频度(次数)是 W={ 2, 7, 4, 5 }。 若给每个字符以等长编码 A : 00 T : 10 C : 01 S : 11 则总编码长度为 ( 2+7+4+5 ) * 2 = 36. 霍夫曼编码(2) 若按各个字符出现的概率不同而给予不等长编码,可望减少总编码长度。 因各字符出现的概率为{ 2/18, 7/18, 4/18, 5/18 }。 化整为 { 2, 7, 4, 5 } 以它们为各叶结点上的权值,建立霍夫曼树。左分支赋 0,右分支赋 1,得霍夫曼编码(变长编码)。 A : 0 T : 10 C : 110 S : 111 它的总编码长度:7*1+5*2+( 2+4 )*3 = 35。比等长编码的情形要短。 霍夫曼编码(3) 总编码长度正好等于 霍夫曼树的带权路径长 度WPL。 霍夫曼编码是一种无 前缀编码。解码时不会 混淆。 * 树与二叉树的定义和性质 问题1. 二叉树是树吗? 解析:“否”,树的定义是从图来的,要求结点至少有1个,二叉树则可以是空树;另外二叉树必为有序树,树可有序,也可无序。 问题2. 树的叶结点无子女,是否可称它无子树? 解析:“是”,树的定义是递归的,递归结束于只有一个结点的树。 问题3. 二叉树的叶结点无子女,它是否无子树? 解析:“否”,二叉树的定义是递归的,递归到空树为止,所以结点无子女,应称它子树为空。 * 问题4. 树和二叉树的高度与深度如何理解? 解析:树的高度与深度的值相等;但树中某个结点的高度与深度的值可能不同:深度是从上向下计算的,高度是从下向上计算的。 问题5. 一棵二叉树有1024个结点,其中465个是叶结点,那么树中度为2和度为1

文档评论(0)

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

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

1亿VIP精品文档

相关文档