贪心算法之赫夫曼编码
编码基本介绍
等长编码
变长编码
前缀码
赫夫曼编码的构造
贪心选择是安全的
最优子结构
编码实现
编码树节点TreeNode
优先队列的实现
赫夫曼编码的构建
maincc和Makefile
编译运行贪心算法之赫夫曼编码赫夫曼编码(Huffman coding)是一种编码方式,赫夫曼编码是变长编码的一种。可以有效的压缩数据,一般可以节约20%~90%的空间,这一般是由文件的数...
分类:
编程语言 时间:
2015-05-11 16:10:14
阅读次数:
779
杂谈: 严蔚敏版《数据结构(C语言版)》 一书 终于看完了。这是 一个完结,也是 一个新的开端。《算法导论》 已到手。
置换选择排序的思想 是 将 归并段 尽量 变的 更大,而不是根据 内存 大小 限制在 固定的 大小。 这样 可以 利用赫夫曼树 来 进行 最优归并树,从而 使 外存 读写次数 最少。
下面给出 具体 代码:欢迎指出代码不足。
// Replace_Selcetion.cpp...
分类:
编程语言 时间:
2015-05-06 11:10:18
阅读次数:
160
。在选择最小s1s2的时候少了一个空语句分号。。调试了好久。。坑爹。这个是最优的编码策略能达到最少的编码 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; ...
分类:
其他好文 时间:
2015-05-05 08:48:11
阅读次数:
128
//赫夫曼树和赫夫曼编码。可运行代码#includeusing namespace std;typedef struct{ unsigned int weight; unsigned int parent,lchild,rchild;}HTNode,*HuffmanTree; ...
分类:
其他好文 时间:
2015-05-04 21:35:13
阅读次数:
218
赫夫曼树及其应用 赫夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,有着广泛的应用。
1 基本概念
① 结点路径:从树中一个结点到另一个结点的之间的分支构成这两个结点之间的路径。
② 路径长度:结点路径上的分支数目称为路径长度。
③ 树的路径长度:从树根到每一个结点的路径长度之和。
④ 结点的带权路径长度:从树的根结点到该结点的的路径长度与结点的权(值)的乘积。
权(...
分类:
其他好文 时间:
2015-04-30 10:38:40
阅读次数:
172
一、题目简介 一套完整的编码译码系统应该具有以下功能:(1)I:初始化(initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立赫夫曼树。并将他存于文件hfmtree.txt中。(2)E:编码(encoding)。利用已经建立好的赫夫曼树(如不在内存,则从文件hfmtre...
分类:
其他好文 时间:
2015-04-26 16:30:05
阅读次数:
208
求赫夫曼编码的算法
参考清华大学出版社出版的《数据结构(c语言版)》一书,在java下实现
//数据结构
class HuffmanNode{
public int weight;//权重
public int parent,lchild,rchild;//父节点、孩子节点在数组中的下标位置 public HuffmanNode(int weight,int parent,...
分类:
编程语言 时间:
2015-03-31 22:21:23
阅读次数:
306
杂谈:最近有点慵懒,不好不好。好几天都没写代码,原本准备上星期完结 树 这一章节的。现在 又耽误了。哎。要抓紧时间啊。
下面直接上代码:
可以到我的网盘下载源代码,或者 直接拷贝下面的源代码 运行
// HuffmanTree.cpp : 定义控制台应用程序的入口点。
//哈弗曼编码,译码
#include "stdafx.h"
#include
#include
enum E_...
分类:
其他好文 时间:
2015-03-31 16:09:19
阅读次数:
177
一、赫夫曼树定义与原理
1.路径长度:从树中一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称作路径的长度;
2.树的路径长度:即从树根到每一结点的路径长度之和;
3.结点的带权的路径长度:即从该结点从到树根之间的路径长度与结点上权的乘积;
4.树的带权路径长度:为树中所有叶子结点的带权路径长度之和;
5.赫夫曼树定义:假设有n个权值{w1,w2,....,wn},...
分类:
其他好文 时间:
2015-03-20 01:25:30
阅读次数:
141
最优二叉树(赫夫曼编码)最优二叉树是带权路径长度最短的二叉树。构造最优二叉树的方法如下:(1)将每个带有权值的节点作为一颗仅有根节点的二叉树,树的权值作为节点的权值(2)将其中两棵权值最小的树组成一棵新的二叉树,新树的权值就是两棵树的权值之和;(3)重复(2),直到所有结点都在一棵二叉树上最优二叉树...
分类:
其他好文 时间:
2015-03-13 12:08:15
阅读次数:
225