- 1、本文档共97页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第6章 树-2013
6.2 一棵度为2的树与一棵二叉树有何区别? 6.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 6. 12 对题6.3所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。 6. 26 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.2l,0.10。试为这8个字母设计哈夫曼编码。使用0~7的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。 6. 27 假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。请画出该树。 6.28 假设一棵二叉树的中序序列为DCBGEAHFIJK和后序序列为DCEGBFHKJIA。请画出该树。 6. 41编写算法,在二叉树中求位于先序序列中第k个位置的结点的值。 6. 42 编写算法,计算二叉树中叶子结点的数目。 6.43 编写算法,将二叉树中所有结点的左、右子树相互交换。 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 口诀:一头扎向左子树的树叶 * * 图6.26 具有不同带权路径长度的二叉树 问题1: 什么样的二叉树的路径长度PL最小? 一棵树的路径长度为0, 结点至多只有1个(根); 路径长度为1, 结点至多只有2个(两个孩子); 路径长度为2, 结点至多只有4个; 依此类推,路径长度为k, 结点至多只有2k个, 所以n个结点二叉树其路径长度至少等于如图6.27所示序列的前n项之和。 图6.27 结点序列及结点的路径长度 结点路径长度0,1, 1, 2,2,2,2, 3, 3, 3, 3, 3, 3, 3, 3, 4,4,… 结点数n n=1 n=2 n=3 n=4 n=5 n=6 n=7 n=8 … n=15 由图6.27可知,结点n对应的路径长度为[log2n],所以前n项之和为 。完全二叉树的路径长度 (h为树的深度), 所以完全二叉树具有最小路径长度的性质,但不具有唯一性。有些树并不是完全二叉树, 但也可以具有最小路径长度,如图6.28所示。 图6.28 具有相同最小路径长度的不同形态的二叉树 问题2: 什么样的树的带权路径长度最小? 例如: 给定一个权值序列{2, 3, 4, 7}, 可构造如图6.29所示的多种二叉树的形态。 图6.29 具有不同带权路径长度的二叉树 Huffman树 构造一颗有n个叶子的二叉树,使该树的带权路径长度为最小,即WPL最小 Huffman树也叫最优二叉树 Huffman树的构造方法:“贪心算法”(greedy algorithm ),该算法是通过所做的局部最优选择来产生出一个全局最优解。 贪心算法是算法中常用的思想方法 4. 哈夫曼树 构造哈夫曼算法的步骤如下: (1) 用给定的n个权值{w1, w2, …, wn}对应的n个结点构成n棵二叉树的森林F={T1, T2, …, Tn},其中每一棵二叉树Ti(1≤i≤n)都只有一个权值为wi的根结点,其左、右子树为空。 (2) 在森林F中选择两棵根结点权值最小的二叉树,作为一棵新二叉树的左、右子树,标记新二叉树的根结点权值为其左右子树的根结点权值之和。 (3) 从F中删除被选中的那两棵二叉树, 同时把新构成的二叉树加入到森林F中。 (4) 重复(2)、(3)操作, 直到森林中只含有一棵二叉树为止, 此时得到的这棵二叉树就是哈夫曼树。 6.5.2 哈夫曼编码 表 6 – 1 指令的使用频率 指令 使用频率(Pi) I1 0.40 I2 0.30 I3 0.15 I4 0.05 I5 0.04 I6 0.03 I7 0.03 表 6 – 2 指令的变长编码 指令 使用频率(Pi) I1 0 I2 1 I3 00 I4 01 I5 000 I6 001 I7 010 图6.30 构造哈夫曼树示例 表 6 – 3 指令的哈夫曼编码 指令 使用频率(Pi) I1 0 I2 10 I3 11
文档评论(0)