试题详情
- 简答题 考虑用哈夫曼算法来找字符a,b,c,d,e,f的最优编码。这些字符出现在文件中的频数之比为20:10:6:4:44:16。要求: (1)简述使用哈夫曼算法构造最优编码的基本步骤; (2)构造对应的哈夫曼树,并据此给出a,b,c,d,e,f的一种最优编码。
-
1)哈夫曼算法是构造最优编码树的贪心算法。其基本思想是,首先所有字符对应n棵树构成的森林,每棵树只有一个结点,根权为对应字符的频率。然后,重复下列过程n-1次:将森林中的根权最小的两棵树进行合并产生一个新树,该新树根的两个子树分别是参与合并的两棵子树,根权为两个子树根权之和。
2)根据题中数据构造哈夫曼树如下图所示。
由此可以得出a,b,c,d,e,f的一组最优的编码:01,0000,00010,00011,1,001。 关注下方微信公众号,在线模考后查看
热门试题
- 数据结构与算法里,从大类上讲,简单选择排
- 关于回溯算法和分支限界法,以下()是不正
- 有一维数组定义:inta[5]={5,3
- 采用高级程序设计语言表达算法,主要好处是
- 散列表的地址区间为0-17,散列函数为H
- Prim算法和Dijkstra算法选择下
- inti;for(i=1;i<=100;
- 穷举法缺点是:运算量较大只适合于“有几种
- 有以下程序,则程序的输出结果不可能是()
- for循环格式中,表达式1一般代表的是循
- 冒泡排序最好的情况是,记录完全有序,20
- 一维数组的定义的形式始下:类型说明符数组
- 对于含有n个元素的子集树问题,最坏情况下
- 数据结构与算法里,C语言的循环语句中,能
- 数据结构与算法里,完数又称完美数,它等于
- 数据结构与算法里,时间复杂度是O(n*n
- 数据结构与算法里,汉诺塔算法虽是递归的,
- 一般来说,递归需要有边界条件、递归前进段
- 用分支限界法设计算法的步骤是什么?
- 鸡兔同笼问题可以是很多实际的问题如()