赫夫曼树(最优二叉树)

原创 2015年07月06日 21:21:00

赫夫曼树又称为最优二叉树

基本的压缩编码方法–赫夫曼编码

路径长度

从树的一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称作路径长度.

树的路径长度 从树根到每一个结点的路径长度之和

赫夫曼算法

  1. 根据给定的n个权值{w1,w2,,……, wn}构成n棵二叉树的集合F={t1,t2,,,… tn},其中每棵二叉树ti中只有一个带权为wi根结点,其左右子树均为空.
  2. 在f中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左右子树上根结点的权值之和.
  3. 在f中删除这棵树,同时将新得到的二叉树加入f中
  4. 重复2和3步骤,知道f只含一棵树为止,这棵树就是赫夫曼树.

这里写图片描述

赫夫曼编码

假设要编码的字符集是{d1,d2,…,dn},各个字符在电文中出现的次数或频率集合为{w1,w2,…,wn},以d1,d2,,…,dn作为叶子结点,以w1,w2,…,wn作为相应叶子结点的权值来构造一棵赫夫曼树.规定赫夫曼树的左分支代表0,右分支代表1,则从根节点到叶子结点所经过的路径分支组成的0和1的序列便为该结点对应字符的编码

优点

随着字符的增加和多字符权重的不同,压缩强度会逐渐变大,压缩会更加明显.

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

哈夫曼树(最优二叉树)及其Java实现

一、定义 一些定义: 节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度 树的路径长度:从树的根节点到树中每一结点...
  • bruce_6
  • bruce_6
  • 2014年08月18日 10:50
  • 4732

[C/C++] 构造最优二叉树-赫夫曼(哈夫曼、Huffman)树算法实现

一、基本概念 1、赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之...
  • super_man_ww
  • super_man_ww
  • 2016年10月13日 09:22
  • 2162

哈夫曼树(最优二叉树)的创建

哈夫曼树是带权路径最小的一种特殊二叉树,所以也称最优二叉树。 在这里不讨论基本概念如如何计算路径等,而只着重于树的创建,具体过程让我们举例而言。其基本的原理为:将所有节点一开始都视为森林,每次从森林...
  • Ava1anche
  • Ava1anche
  • 2015年07月23日 17:16
  • 1376

构造最优二叉树-赫夫曼(Huffman)树算法

http://blog.163.com/zhoumhan_0351/blog/static/3995422720098275836215/ 构造最优二叉树-赫夫曼(Huffman)树算法   ...
  • fu_shuwu
  • fu_shuwu
  • 2015年05月30日 09:56
  • 938

树之赫夫曼树 最优二叉树

一、介绍赫夫曼树可以用来优化算法,减少运行次数;还可以用于电报编码。 二、优化算法对于我们嵌套的if语句,通常我们需要判断多次if。但是if里表达式的顺序与程序运行速度有很大关系。如果我们把频率高的...
  • qq_16234613
  • qq_16234613
  • 2016年09月05日 13:02
  • 202

数据结构学习笔记 --- 最优二叉树(赫夫曼树)

1. 引言 最优二叉树是带权路径长度最短的二叉树。根据结点的个数,权值的不同,最优二叉树的形状也各不相同。它们的共同点是:带权值的结点都是叶子结点。权值越小的结点,其到根结点的路...
  • whz_zb
  • whz_zb
  • 2012年02月28日 23:49
  • 1354

ACM程序设计选修课——Problem D: (ds:树)合并果子(最优二叉树赫夫曼算法)

Problem D: (ds:树)合并果子 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 80  Solved: 4 [Submit][Status][...
  • a88770202
  • a88770202
  • 2016年04月09日 14:39
  • 263

6.6.1最优二叉树(赫夫曼树)

6.6.1最优二叉树(赫夫曼树)
  • qq78442761
  • qq78442761
  • 2017年02月21日 12:34
  • 546

赫夫曼树(最优二叉树)-数据结构(16)

一、例子引出问题 参考书上P144-P149 。在我们计算成绩排名的时候,我们大部分人的成绩都在中等的,还有一小部分在极优和极差中,服从正态分布。因此出现了让有权重的树,为了将经常用到的判断放在前面...
  • qq_14972057
  • qq_14972057
  • 2017年05月21日 14:27
  • 209

满二叉树、完全二叉树、最优二叉树(赫夫曼树)、二叉排序树、二叉判定树

1、满二叉树 定义:除最后一层的结点外,每一层的所有结点都有两个子结点。 另外一个定义:深度为k且有2^k-1个结点的二叉树。   满二叉树是一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=...
  • hehainan_86
  • hehainan_86
  • 2013年09月10日 21:30
  • 6864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:赫夫曼树(最优二叉树)
举报原因:
原因补充:

(最多只允许输入30个字)