美文网首页工作生活
哈夫曼树(或最优二叉树)

哈夫曼树(或最优二叉树)

作者: 小明今晚加班 | 来源:发表于2019-06-30 08:45 被阅读0次

定义哈夫曼树之前先说明几个与哈夫曼树有关的概念:
路径:树中一个结点到另一个结点之间的分支构成这两个结点之间的路径
路径长度:路径上的分支数目
树的路径长度:从树根到每个结点的路径长度之和
结点的带权路径长度:在一棵树中,假设其结点上附带有一个权值,通常把该结点的路径长度与该结点上的权值之积称为该结点的带权路径长度。


一般来说,用n(n>0)个带权值的叶子来构造二叉树,限定二叉树中除了这n个叶子外仅能出现度为2的结点。那么符合这样条件的二叉树往往有很多颗,其中带权路径长度最小的二叉树就称为哈夫曼树或最优二叉树

构建哈夫曼树

假设有n个结点,n个结点的权值分别为w1,w2,...,wn,构成的二叉树的集合为F={T1,T2,...,Tn},则可构造一棵含有n个叶子结点的哈夫曼树。步骤如下:

(1)从F中选取两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,其新的二叉树的权值为其左右子树根结点权值之和;

(2)从F中删除上一步选取的两棵二叉树,将新构造的树放到F中;

(3)重复(1)(2),直到F只含一棵树为止。


image.png

相关文章

  • 哈夫曼树操作

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

  • 哈夫曼树

    数据结构——哈夫曼树 哈夫曼树又被称为最优二叉树,是指一类带权路径长度最小的二叉树,哈夫曼树的遍历不是唯一的,因为...

  • 构造哈夫曼树和对每个字符进行编码

    必备知识 哈夫曼树也称为最优二叉树。 哈夫曼树并不唯一,但带权路径长度一定是相同的。 哈夫曼树中,左子树值必须小于...

  • 哈夫曼树与哈夫曼编码

    哈夫曼树哈夫曼树又称最优二叉树,是一种带权路径最短的二叉树。对于给定的n个叶子结点,在构建哈夫曼树时只需要遵循一个...

  • 数据结构-哈夫曼树(python实现)

    好,前面我们介绍了一般二叉树、完全二叉树、满二叉树,这篇文章呢,我们要介绍的是哈夫曼树。哈夫曼树也叫最优二叉树,与...

  • 哈夫曼编码

    一、概念:哈夫曼树,即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。在计算机信息处理中,“哈夫曼编码”...

  • 哈夫曼树

    哈夫曼树,类似于算法中的二叉树,说白了哈夫曼树就是一种二叉树,只是是一种最优二叉树。我们准备一组数以 1,7,3,...

  • 数据结构与算法-哈弗曼编码

    1. 概念 哈夫曼树,即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在计算机信息处理中,“哈夫曼编...

  • Day2--哈夫曼树及其应用

    一、哈夫曼树的基本概念 哈夫曼树称为最优树,是一类带权外路径长度最小的树。 相关概念: (1)扩充二叉树:只存...

  • 二叉树的应用-哈夫曼编码

    哈夫曼树 哈夫曼树是带权路径长度最短的树,又称最优二叉树,权值较大的结点离根较近。 树的带权路径长度规定为所有叶子...

网友评论

    本文标题:哈夫曼树(或最优二叉树)

    本文链接:https://www.haomeiwen.com/subject/ndyvcctx.html