Huffman编码

Huffman树:

  • 路径带权
  • 所有叶子结点的路经长*权的和—WPL,最小。
  • 即权最大的叶子结点最浅

构造:从一堆带权值的树(一开始是左右都为空的叶子节点)开始:

  • 取权最小的两个组成树,新树的权为二者之和
  • 新树加入,两旧树删去
  • 重复1、2,知道只剩一棵树

性质:最优判定树:概率最大的路径最短,总判定时间最小

Huffman编码:

  • 从带权字符集,构建树:叶子结点集合,按前面的算法,合并成新的树
  • 从huffman树,输出其中的编码
    • 回溯:从每个叶子结点开始,找父母,看自己在父母的那一边,左是0右是1,记录下来
    • 向下:从根节点开始,往下走,每经过一个节点
      • 标记:未走/左分支已走/左右分支均已走,按标记决定下一步走向
      • 记录编码于数组cd中:往左走添0,往右添1
      • 遇到叶子结点,输出当前cd
      • 两个分支均已走过的节点,退回父节点,cd退一字符
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Huffman树及Huffman编码 一.实验目的 掌握哈夫曼树的构造算法、哈夫曼编码原理。 二.实验要求与内容 ...
    落幕12阅读 1,194评论 0 0
  • 本文主要介绍Huffman编码、Huffman树、和如何借助Python实现Huffman编码树对文件进行压缩和解...
    谷谷_z阅读 15,775评论 6 12
  • 构建Huffman树: 1.将给定的n个权值看作n棵只有结点无左右孩子的二叉树,组合成一个集合HT。 2.从集合H...
    AmberAndAmong阅读 798评论 0 0
  • 一、定义 霍夫曼(Huffman)编码是一种编码方式,主要用于数据文件的压缩。它的主要思想是放弃文本文件的普通保存...
    null12阅读 11,710评论 0 2
  • huffman编码简介 参考 这篇文章 python实现 开头 二叉树类 定义装饰器用于计时 定义huffman类...
    loser_king阅读 778评论 0 0

友情链接更多精彩内容