首页 > 其他 > 详细

第十周笔记

时间:2020-05-13 20:33:49      阅读:29      评论:0      收藏:0      [点我收藏+]

第十周笔记

哈夫曼树及其应用


  • 哈夫曼树的基本概念

1.路径:从根结点到该结点的分支序列。路径长度:从根结点到该结点所经过的分支数目。
2.结点的权:给树的每个结点赋予的实数。带权路径长度:某一结点的路径长度与该结点的权的乘积。
3.树的带权路径长度记为:

\[\sum_{i=1}^n w_i*l_i \]

  • 构造哈夫曼树

1.初始化:左右子树为空
2.找最小树:选择根结点权值最小的二叉树,作为新的二叉树的左右子树,标记新二叉树的根结点权值为左右子树根结点权值之和。
3.删除和加入:从F中删除被选中的那两棵二叉树,同时把新构成的二叉树加入到森林F中。
4.判断:重复2,3操作,知道森林含有一棵二叉树为止,就称此二叉树为哈夫曼树。

  • 哈夫曼树的类型定义

由于哈夫曼树没有度为1的结点,因此一棵树有n个叶子的哈夫曼树共有2n-1个结点,可以用2n-1一维数组来存放哈夫曼树的各个结点。

  • 哈夫曼树的编码

对于一棵具有n个叶子的哈夫曼树,若对树中的每个左分支赋予0,右分支赋予1(或左为1,右为0),则从根到每个叶子的通路上,各分支的赋值构成一个二进制串,该串被称为哈夫曼编码。

结 束

第十周笔记

原文:https://www.cnblogs.com/lan-adress/p/12884560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!