数据结构与算法(周测3-Huffman树)
判断题
1.Given a Huffman tree for N (≥2) characters, all with different weights. The weight of any non-leaf node must be no less than the weight of any node on the next lower level.
T
F
哈夫曼树的根节点的权重为左右子节点的权重之和。
2.Let C be an alphabet in which each character c in C has frequency c.freq. If the size of C is n, the length of the optimal prefix code for any character c is not greater than n−1.
T
F
考虑哈夫曼树最不平衡的情况,设根结点为第0层,从第一层开始,到倒数第二层为止,都只有一个叶子结点,倒数第一层有2个叶子结点,整个树向一边倾倒。参考选择题第2题的图。即使是这种最不平衡的情况下,观察每一个字符的最优前缀码,最长也才是字符集个数减1。
3.哈夫曼编码是一种最优的前缀码。对一个给定的字符集及其字符频率,其哈夫曼编码不一定是唯一的,但是每个字符的哈夫曼码的长度一定是唯一的。
T
F
哈夫曼字符的频率相同时每个字符的码长不是确定的。
选择题
1.对N(N≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是:
B.树中两个权值最小的结点一定是兄弟结点
C.树中任一非叶结点的权值一定不小于下一层任一结点的权值
D.该树一定是一棵完全二叉树
哈夫曼树是不等长编码,饿如果是完全二叉树,那么就会是等长编码了。
2.由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为:
B.37
C.44
D.46
根据图,计算带权路径长度,\(\color{red}{9+7\times2+2\times3+5\times3=44}\)

3.Given a piece of text which consists of characters {a, b, c, d}, with the frequencies of occurrence being {4, 2, 5, 1}, respectively. How many bits are saved by Huffman code comparing to the equal-length code?
B.2
C.4
D.5
设左结点为0,右结点为1。根据图得到编码:a(10),b(110),c(0),d(111)。\(\color{red}{2\times4+3\times2+5+3=22}\)位。而假如采用等长码,需要\(\color{red}{12\times2=24}\)位

4.哈夫曼树是n个带权叶子结点构成的所有二叉树中()最小的二叉树。
B.高度
C.带权路径长度
D.度
5.关于Huffamn树,如下说法错误的是( )
B.Huffman树中,任意调整结点左右孩子的顺序,不影响带权路径长度
C.Huffamn树的带权路径长度最大
D.Huffman树中,权值越大的叶子结点离根结点越近
6.设给定权值总数有n 个,其哈夫曼树的结点总数为( )。
B.2n+1
C.2n-1
D.不确定
哈夫曼树的叶结点个数为给定权值个数,而非叶结点为为叶结点个数减1。
7.设哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。
B.100
C.101
D.102
见第6题的分析。
8.Given a set of characters { a, b, c, d, e, f } with their occurrence frequencies being { 6, 3, 8, 2, 10, 4 }, respectively. Which of the following is a correct set of the corresponding Huffman codes?
B.00, 100, 110, 000, 0010, 01
C.10, 1011, 11, 0011, 00, 010
D.0011, 10, 11, 0010, 01, 000
关于这个问题,首先判断是否是前缀码,排除BC,然后计算分别采用A、D编码的带权路径长度为70和86。
9.设有13个值,用它们构成一棵哈夫曼树,则该哈夫曼树共有结点数是( )。
B.12
C.26
D.25
见第6题的分析。
10.以下关于huffman树说法错误的是( )。
B.huffman树中没有度数为1的分支结点
C.若初始森林中共有n棵二叉树,最终求得的huffman树共有2n-1个结点
D.若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下一棵最终的huffman树
其实这个问题的D选项就是变相在问合并之后最终的哈夫曼树有多少非叶子结点,这个可见第6题的分析。
11.设一段文本中包含4个对象{a,b,c,d},其出现次数相应为{4,2,5,1},则该段文本的哈夫曼编码比采用等长方式的编码节省了多少位数?
B.2
C.4
D.5
同第3题。
12.Construct a Huffman tree from four leaf nodes with weights 9, 2, 5 and 7. Then the weighted path length of this Huffman tree is:
B.37
C.44
D.46
同第2题。
13.根据使用频率为5个字符设计的哈夫曼编码不可能是( )。
B.000,001,010,011,1
C.100,11,10,1,0
D.001,000,01,11,10
直接看是否是前缀码。
14.已知权值集合为{5,7,2,3,6,1,4},计算带权路径长度WPL()。
B.74
C.75
D.76
如图,计算带权最短路径\(\color{red}{2\times7+3\times5+3\times4+2\times6+3\times3+4\times2+4=74}\)

15.对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:
B.57
C.58
D.60
见第6题的分析。
数据结构与算法(周测3-Huffman树)的更多相关文章
- [数据结构与算法]哈夫曼(Huffman)树与哈夫曼编码
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Java数据结构和算法(七)B+ 树
Java数据结构和算法(七)B+ 树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 我们都知道二叉查找树的查找的时间复杂度是 ...
- Android版数据结构与算法(七):赫夫曼树
版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 近期忙着新版本的开发,此外正在回顾C语言,大部分时间没放在数据结构与算法的整理上,所以更新有点慢了,不过既然写了就肯定尽力将这部分完全整理好分享出 ...
- 为什么我要放弃javaScript数据结构与算法(第八章)—— 树
之前介绍了一些顺序数据结构,介绍的第一个非顺序数据结构是散列表.本章才会学习另一种非顺序数据结构--树,它对于存储需要快速寻找的数据非常有用. 本章内容 树的相关术语 创建树数据结构 树的遍历 添加和 ...
- 看图轻松理解数据结构与算法系列(NoSQL存储-LSM树) - 全文
<看图轻松理解数据结构和算法>,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握.本系列包括各种堆.各种队列.各种列表.各种树.各种图.各种排序等等几十篇的样子. 关于LSM树 ...
- 17-看图理解数据结构与算法系列(NoSQL存储-LSM树)
关于LSM树 LSM树,即日志结构合并树(Log-Structured Merge-Tree).其实它并不属于一个具体的数据结构,它更多是一种数据结构的设计思想.大多NoSQL数据库核心思想都是基于L ...
- 【数据结构与算法】Trie(前缀树)模板和例题
Trie 树的模板 Trie 树的简介 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树.他的核心思想是空间换 ...
- 10: java数据结构和算法: 构建哈夫曼树, 获取哈夫曼编码, 使用哈夫曼编码原理对文件压缩和解压
最终结果哈夫曼树,如图所示: 直接上代码: public class HuffmanCode { public static void main(String[] args) { //获取哈夫曼树并显 ...
- 数据结构与算法(九):AVL树详细讲解
数据结构与算法(一):基础简介 数据结构与算法(二):基于数组的实现ArrayList源码彻底分析 数据结构与算法(三):基于链表的实现LinkedList源码彻底分析 数据结构与算法(四):基于哈希 ...
- Java数据结构和算法(四)赫夫曼树
Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...
随机推荐
- Android 打开相册拍照选择多张图片显示
添加依赖: compile 'me.iwf.photopicker:PhotoPicker:0.1.8' compile 'com.jaeger.ninegridimageview:library:1 ...
- JDK动态代理在RPC框架中的应用
RPC框架中一般都有3个角色:服务提供者.服务消费者和注册中心.服务提供者将服务注册到注册中心,服务消费者从注册中心拉取服务的地址,并根据服务地址向服务提供者发起RPC调用.动态代理在这个RPC调用的 ...
- openresty开发系列28--openresty中操作mysql
openresty开发系列28--openresty中操作mysql Mysql客户端 应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢? ...
- ByteBuf使用实例
之前我们有个netty5的拆包解决方案(参加netty5拆包问题解决实例),现在我们采用另一种思路,不需要新增LengthFieldBasedFrameDecoder,直接修改NettyMessage ...
- Spring cloud微服务安全实战-3-2 第一个API及注入攻击防护
先来写一些用户的基础数据的管理的api.就是用户的基本的增删改查.用spring boot可以很容易的写出这种api 首先新建maven的项目 依赖关系 引入依赖.用最新的spring boot ht ...
- k8s记录-flanneld+docker网络部署(四)
1)程序准备tar xvf flannel-v0.10.0-linux-amd64.tar.gz mkdir -p /data/projects/common/kubernetes/{bin,cfg, ...
- VS2010配置OpenGL开发环境(转)
OpenGL(Open Graphics Library)是一个跨编程语言.跨平台的专业图形程序接口.OpenGL是SGI公司开发的一套计算机图形处理系统,是图形硬件的软件接口,任何一个OpenGL应 ...
- 怎么改变wampserver默认的网站目录
现在大家基本上开发php的有很大一部分都在用Wampserver,今天来讲讲怎么更改默认的www目录, 需要修改的文件有三个 apache2的配置文件 httpd.conf 和 Wampserver的 ...
- 解决ubuntu的firefox上网速度慢【转】
在ubuntu上用firefox上网十分慢,但是在切换了chrome后发现上网速度很快,是解析域名上出现了问题,所以要为FF设置DNS缓存以提高速度.(在WIN下这个是自动设置好的,在ubuntu下需 ...
- 常见问题:计算机网络/运输层/UDP
几乎不对IP增加其他东西,无连接. 优势 速度快.适合实时. 无连接建立,没有连接时延. 无连接状态. 分组首部开销小.TCP需20字节,UDP仅需8字节. 使用UDP的协议 DNS SNMP RIP ...