13、数据结构与算法实战:赫夫曼树

学习笔记:数据结构与算法(十三):赫夫曼树

  • 赫夫曼树
    • 定义
  • 构造过程
  • 名词解释
  • 赫夫曼编码

赫夫曼树

定义

把两棵二叉树简化成叶子结点带权的二叉树(树结点间的连线相关的数叫做权)
结点的路径长度:从根结点到该结点的路径上的连接数
树的路径长度:树中每个叶子结点的路径长度之和
结点带权路径长度:结点的路径长度与结点权值的乘积
树的带权路径长度:树中所有叶子结点的带权路径长度之和。
*

构造过程

1、 在森林中选出两棵根结点的权值最小的二叉树;
2、 合并选出的两个二叉树,新增加一个结点作为他俩的根,权值为二者之和;
3、 在森林里选出两棵根结点的权值最小的二叉树,进行合并;
4、 操作同2,重复3-2-3-2.;

名词解释

定长编码:像ASC*码
变长编码:单个编码的长度不一致,可以根据整体出现频率来调节。
前缀码:没有任何码字是其他码字的前缀

赫夫曼编码

*
左子树用0来表示,右子树用1表示。圆圈里是结点的权值。
创建树之前,先创建一个具有优先级的队列,表示出现的次数,也就是权值。

代码可能没法放上来了,因为视频里没给完全

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: