哈夫曼编码是一个通过哈夫曼树进行的一种编码,一般情况下,以字符:‘0’与‘1’表示。编码的实现过程很简单,只要实现哈夫曼树,通过遍历哈夫曼树,这里我们从每一个叶子结点开始向上遍历,如果该结点为父节点的左孩子,则在字符串后面追加“0”,如果为其右孩子,则在字符串后追加“1”。结束条件为没有父节点。然后 ...
分类:
编程语言 时间:
2017-05-14 12:20:08
阅读次数:
194
前言 哈夫曼编码(Huffman coding)是一种可变长的前缀码。哈夫曼编码使用的算法是David A. Huffman还是在MIT的学生时提出的,并且在1952年发表了名为《A Method for the Construction of Minimum-Redundancy Codes》的文 ...
分类:
其他好文 时间:
2017-05-11 16:56:03
阅读次数:
237
本博客的代码的思想和图片参考:好大学慕课浙江大学陈越老师、何钦铭老师的《数据结构》 哈夫曼编码问题 1 引子 1.1 将百分制的考试成绩转换成五分制的成绩,程序如下: if( score < 60 ) grade =1;else if( score < 70 ) grade =2;else if( ...
分类:
其他好文 时间:
2017-04-23 10:47:06
阅读次数:
346
本博客由Rcchio原创 我了解到很多压缩文件的程序是基于哈夫曼编码来实现的,所以产生了自己用哈夫曼编码写一个压缩软件的想法,经过查阅资料和自己的思考,我用c++语言写出了该程序,并通过这篇文章来记录一下自己写该程序学到的东西。因为本人写的程序在压缩率上,还有提升的空间,所以本文将不定期更新,但程序 ...
分类:
编程语言 时间:
2017-04-18 00:38:24
阅读次数:
291
哈夫曼编码应该算数据结构“树”这一章最重要的一个问题了,当时大一下学期学的时候没弄懂,一年后现在算是明白了。 首先,讲讲思路。 正好这学期在学算法,这里面就用到了贪心算法,刚好练练手。 整个问题有几个关键点: 1,首先是要思考怎么样存下从txt中读取的一个所有字符中每种字符出现的次数,首先想到的应该 ...
分类:
其他好文 时间:
2017-04-05 22:04:34
阅读次数:
265
POJ1056 给定若干个字符串的集合 判断每个集合中是否有某个字符串是其他某个字符串的前缀 (哈夫曼编码有这个要求) 简单的过一遍Trie就可以了 ...
分类:
其他好文 时间:
2017-03-08 20:22:38
阅读次数:
145
一款基于哈夫曼编码和最小堆的无损压缩、解压缩小程序,支持任何格式文件的压缩解压缩,代码已开源至github,具体地址请看正文前言部分 ...
分类:
其他好文 时间:
2017-01-17 23:21:58
阅读次数:
344
构建哈夫曼原理:(每个元素都是叶子结点,N 个元素共有 2N-1 个结点) 有 N 个带权值的结点,将其按以下方法构建:①②③ ①选取 N 个结点集合中最小的两个权值结点构造成一个新的二叉树,且设置新结点的权值为左右孩子权值之和 ②将以上选取的两个最小权值结点从原集合中删除,向集合中加入 这两个结点 ...
分类:
其他好文 时间:
2016-11-20 06:10:52
阅读次数:
262
一.背景介绍: 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 二.实现步骤: 1.构造一棵哈夫曼树 2.根据创建好的哈夫曼树创建一张哈夫曼编码表 ...
分类:
编程语言 时间:
2016-11-15 07:37:37
阅读次数:
283
1、树与树的表示
什么是树?
客观世界中许多事物存在层次关系
人类社会家谱
社会组织结构
图书信息管理
分层...
分类:
其他好文 时间:
2016-10-31 14:11:42
阅读次数:
264