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

3 非线性结构 3.1 树结构 3.2 二叉树结构 3.3 图 Preorder(TREENODE * p) { if(p==NULL) return; printf(“%c”,p-data); if(p-lchild !=NULL) preorder(p-lchild); if(p-rchild !=NULL) preorder(p-rchild); } inorder(TREENODE * p) { if(p==NULL) return; if(p-lchild !=NULL) inorder(p-lchild); printf(“%c”,p-data); if(p-rchild !=NULL) inorder(p-rchild); } postorder(TREENODE * p) { if(p==NULL) return; if(p-lchild !=NULL) postorder(p-lchild); if(p-rchild !=NULL) postorder(p-rchild); printf(“%c”,p-data); } 根据遍历序列构造二叉树P42 【例】如果一棵二叉树的中序遍历序列为:ABCDE;后序遍历序列为:DECBA;构建这棵树。 二叉排序树的生成P43 【例】有10个数构成的序列{190,381,12,40,410,394,540,760,85,476};根据算法思想构建一棵二叉排序树。(p44) 哈夫曼树应用练习 【例】已知某系统在通信联络中只可能出现八种字符,其频率分别为0.05、0.29、0.07、0.08、0.14、0.23、0.03、0.11,试设计哈夫曼编码。 3.树的带权路径长度 树的带权路径长度规定为所有叶子节点的带权路径长度之和,记为 WPL= , 其中n 为叶子节点数目,wi为第i 个叶子节点的权值,li 为第i 个叶子节点的路径长度。 d c b a c b a d d c b a 7 5 2 4 WPL=36 WPL=46 WPL=35 哈夫曼树 二、构造哈夫曼树 1.哈夫曼树的定义 在一棵二叉树中,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。 d c b a c b a d d c b a 7 5 2 4 WPL=36 WPL=46 WPL=35 哈夫曼树 说明: 满二叉树不一定是最优二叉树,权值越大的节点离根节点越近的二叉树才是最优二叉树。 2.哈夫曼树的构造 假设有n个权值,则构造出的哈夫曼树有n个叶子节点。 n个权值分别设为 w1,w2,…,wn,则哈夫曼树的构造规则为: (1) 将w1,w2,…,wn看成是有n 棵树的森林(每棵树仅有一个节点); (2) 在森林中选出两个根节点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根节点权值为其左、右子树根节点权值之和; (3)从森林中删除选取的两棵树,并将新树加入森林; (4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为我们所求得的哈夫曼树。 哈夫曼树 例4: 假设给定的叶子节点的权分别为1,5,7,3,则构造哈夫曼树过程如图4所示。 哈夫曼树 例:有一串电文:ababadababbcddcdaa 问题提出:如何电文编码使总码最短? 前 提:字符不等概率,能顺利翻译 解决方法:字符不是等长码——前缀编码 构造哈夫曼树, 左支为‘0’,右支为‘1’ 例:右图节点哈夫曼编码为: a(0) b(10) c(110) d(111) 三、哈夫曼树的应用(哈夫曼编码) d c b a n个权值的哈夫曼树的特点: (1) 树叶个数——n (2) 节点个数——2*n-1 (3) 度为1的节点个数为零 哈夫曼树 在远程通讯中,要将待传字符转换成由二进制组成的字符串: 设要传送的字符为: ABACCDA 若编码为: A—00 B—01

文档评论(0)

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

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

1亿VIP精品文档

相关文档