现有一段文言文,要通过二进制哈夫曼编码进行压缩。假设这段文言文只由4个汉字“之”“乎”“者”“也”组成,它们出现的次数分别为700、600、300、200。那么,“也”字的编码长度是( )。 哈弗曼编码的原理需要你自己研究再看看其思想。本题解如图: 汉字 概率 编码 之: 700 00 乎: 600 ...
分类:
其他好文 时间:
2016-09-18 21:08:25
阅读次数:
194
哈夫曼树与哈夫曼编码 术语: i)路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。 路径中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。 ii)结点的权及带权路径长度 若对树中的每个结点赋给一个有着某种含义的数值,则 ...
分类:
其他好文 时间:
2016-09-17 23:37:06
阅读次数:
272
在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN) 树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如 JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树, 是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中 ...
分类:
其他好文 时间:
2016-09-07 22:25:57
阅读次数:
219
在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。 哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有 ...
分类:
其他好文 时间:
2016-08-08 12:28:32
阅读次数:
246
简介:利用哈夫曼树实现一个文本文档的压缩,以及对压缩文件的解压思路:在压缩文件时,首先要统计字符出现的次数,构建哈夫曼树,生成哈夫曼编码,压缩到文件。在解压文件时,读取压缩文件,将编码与字符相对应,最后将字符写到文件中。在解压文件中,如何将编码与字符相对应..
分类:
其他好文 时间:
2016-07-22 14:53:15
阅读次数:
211
文件压缩与解压思想:
(1)统计字符出现次数,结合最小堆的性质生成哈夫曼树;
(2)对叶节点进行编码,结点左边编0,右边编1;
(3)读取文件,用哈夫曼编码代替字符产生新的字符,即压缩;
(4)读取压缩文件,进行哈夫曼编码的解读产生相应字符,即解压;
例如,对以下数据生成哈夫曼树,以及产生相应的哈夫曼编码:
//自己写的最小堆(因为在加强巩固,所以没用STL里的)
...
分类:
其他好文 时间:
2016-07-19 11:06:56
阅读次数:
245
哈夫曼树是一种简单的树结构,建树过程如下: 给出一组数据,不断选择最小的两个数,并用两个数的和作为它们的parent节点,再从数据中删除这两个数,将两个数的和加入数据中,直到所有的数据都被加入树结构,形成一颗树。 这颗树的所有非叶子节点都有两个child,两个child的值的和则是这个节点的值,根节 ...
分类:
其他好文 时间:
2016-07-08 21:53:53
阅读次数:
292
哈夫曼编码是 1952 年由 David A. Huffman 提出的一种无损数据压缩的编码算法。哈夫曼编码先统计出每种字母在字符串里出现的频率,根据频率建立一棵路径带权的二叉树,也就是哈夫曼树,树上每个结点 存储字母出现的频率,根结点到结点的路径即是字母的编码,频率高的字母使用较短的编码,频率低的 ...
分类:
其他好文 时间:
2016-06-13 19:14:12
阅读次数:
214
1. AVL树 AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。 节点的平衡因子是它的左子树的高度减去它的右子树的高度(有时相反)。带有平衡因子1、0或 -1的节点被认为是平衡的。带有平衡因子 -2或2的节点被认为是不平衡的,并需要重新平衡这个树。平衡因子可以...
分类:
其他好文 时间:
2016-06-12 16:55:00
阅读次数:
177
哈夫曼树的基本概念 哈夫曼树(Huffman Tree),又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树。 (1)路劲(Path):从树中的一个结点到另一个结点之间的分支构成两个结点间的路径。 (2)路径长度(Path Length):路径上的分支树。 (3)树的 ...
分类:
其他好文 时间:
2016-05-07 06:28:40
阅读次数:
284