美文网首页
数据结构|哈夫曼树

数据结构|哈夫曼树

作者: 小青多多 | 来源:发表于2022-05-04 08:43 被阅读0次

最优二叉树又称哈夫曼树,它是一类带权路径长度最短的树。路径是从树中一个结点到另一个结点之间的通路,路径上的分支数目称为路径长度。

树的路径长度是从树根到每一个叶子之间的路径长度之和。结点的带权路径长度为从该结点到树根之间的路径长度与该结点权值的乘积。

树的带权路径长度为树中所有叶子结点的带权路径长度之和。

哈夫曼树是二叉树中带权路径长度最小的二叉树。


构造最优二叉树的哈夫曼算法如下:

1)根据给定的n个权值{w1,w2,…,wn},构成n棵二叉树的集合F={T1,T2,…,Tn},其中,每棵树Ti中只有一个带权为wi的根结点,其左、右子树均空。

2)在F中选取两棵权值最小的树作为左、右子树构造一棵新的二叉树,置新构造二叉树的根结点的取值为其左、右子树根结点的权值之和。

3)从F中删除这两棵树,同时将新得到的二叉树加入到F中。

重复2)、3)步,直到F中只含一棵树时为止,这棵树便是最优二叉树(哈夫曼树)。

由此算法可知,以选中的两棵子树构成新的二叉树,哪个作为左子树,哪个作为右子树,并没有明确。所以,构造的二叉树不唯一,但其带权路径长度是唯一确定的。

当给定了n个权值后,构造的最优二叉树中的结点数目m就确定了,即m=2*n-1。


相关文章

  • 哈夫曼树

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

  • 数据结构06-哈夫曼树与哈夫曼编码

    数据结构06-哈夫曼树 一、哈夫曼树的基本概念 1.哈夫曼树 给定n个权值作为n个叶子节点,构造一棵二叉树,若带权...

  • 《恋上数据结构与算法一》笔记(十八)哈夫曼树

    目录 哈夫曼编码(Huffman Coding) 哈夫曼树 构建哈夫曼树 构建哈夫曼编码 一 哈夫曼编码(Huff...

  • 《数据结构与算法》总结(七)哈夫曼树

    目录 哈夫曼编码(Huffman Coding) 哈夫曼树 构建哈夫曼树 构建哈夫曼编码 一 哈夫曼编码(Huff...

  • 2018-11-27

    专业英语 第九章 数据结构 根据哈夫曼树求哈夫曼编码以及图的基本定义

  • 大师兄的数据结构学习笔记(九): 图

    大师兄的数据结构学习笔记(八): 哈夫曼树与哈夫曼编码[https://www.jianshu.com/p/7e4...

  • A simple test

    哈夫曼编码 此代码用于生成哈夫曼树并且获取哈夫曼编码

  • 初识哈夫曼树

    何为哈夫曼树: 哈夫曼树是压缩算法中非常重要数据结构。百度百科解释:给定n个权值作为n个叶子节点,构造一棵二叉树,...

  • 2018-11-27

    今天看了哈夫曼构造过程,了解如何构造哈夫曼树。

  • 哈夫曼树(代码实现)

    前面我们介绍了哈夫曼树的理论实现,现在介绍一下具体代码实现。 我们先定义哈夫曼树节点的数据结构。 在有了树节点之后...

网友评论

      本文标题:数据结构|哈夫曼树

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