6.6.2赫夫曼编码
首先介绍几个名词。
定长编码:像ASCII编码那样。
变长编码:单个编码长度不一致,可以根据整体出现频率来调教。
前缀码:没有任何码字是其他码字的前缀。
下面给出一个赫夫曼树。
规定:左孩子标记0,右孩子标记1。
所以编码:
A(0)
B(10)
C(110)
D(111)
所以这也是一个前缀编码视图。
下面是部分代码:
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include "huffman.h"int main(void)
{//We build the tree depending on the stringhtTree *codeTree = buildTree("beep boop beer!");//We build the table depending on the Huffman treehlTable *codeTable = buildTable(codeTree);//We encode using the Huffman tableencode(codeTable,"beep boop beer!");//We decode using the Huffman tree//We can decode string that only use symbols from the initial stringdecode(codeTree,"0011111000111");//Output : 0011 1110 1011 0001 0010 1010 1100 1111 1000 1001system("pause");return 0;
}
提示:此代码是网教小甲鱼提供,本人做了一点点改动。此代码比较多,在此不再讲述。需要的网友,下载后单步调试。
IDE为vs2013
下载地址如下:
http://download.csdn.net/detail/qq78442761/9759984
运行结果:
6.6.2赫夫曼编码相关推荐
- 赫夫曼编码(基于赫夫曼树的实现)
上一篇文章中我们探讨了赫夫曼树的基本原理和构造方式,而赫夫曼编码可以很有效地压缩数据(通常可以节约20%-90%的空间,具体压缩率依赖于数据的特性). 名词:定长编码,边长编码,前缀码(装B用的) 定 ...
- 算法系列之使用赫夫曼编码的实战应用【对文件进行压缩、解压缩】
1.首先在准备一张图片 2.测试压缩效果 3.测试解压缩效果 将桌面a.jpg删除 4.源代码 package com.zsh.algorithm.tree;import java.io.*; imp ...
- 算法系列之赫夫曼编码实战一【数据压缩、数据解压】
1.何谓赫夫曼编码? 2.赫夫曼数据压缩 3.赫夫曼数据解压 4.全代码 1.何谓赫夫曼编码? 哈夫曼编码是一种编码方式,哈夫曼编码是可变字长编码的一种.Huffman于1952年提出一种编码方法,该 ...
- 《数据结构与算法》课程设计报告——赫夫曼编码/译码器
题目 赫夫曼编码/译码器 实验目的 本课程设计是为了让同学们了解学习数据结构的作用和意义.数据结构是计算机科学与技术专业的专业基础课,是十分重要的课程.所有的计算机系统软件和应用软件都要用到各种类型的 ...
- 赫夫曼编码-译码器(Huffman Coding)
基本概念 哈夫曼编码(Huffman Coding):又称霍夫曼编码.赫夫曼编码-,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据 ...
- JAVA——赫夫曼编码-译码器(Huffman Coding)
基本概念 哈夫曼编码(Huffman Coding):又称霍夫曼编码.赫夫曼编码-,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据 ...
- C++——赫夫曼编码-译码器(Huffman Coding)
基本概念 哈夫曼编码(Huffman Coding):又称霍夫曼编码.赫夫曼编码-,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据 ...
- 《数据结构与算法》课程设计任务书——赫夫曼编码/译码器
<数据结构与算法>课程设计 (2019/2020学年第一学期) 指导教师:孙麒.霍戌文 <数据结构与算法>课程设计 任务书 <数据结构与算法>是计算机科学与技术专业 ...
- 利用赫夫曼编码进行数据解压
基本概念 代码实现 package com.atguigu.huffmancode;import com.sun.org.glassfish.external.statistics.CountStat ...
- 算法 - 赫夫曼编码(对字符串进行压缩 与 解压(解码)) - (对文件进行压缩解压)
1.压缩:使用赫夫曼编码进行压缩 题目 构建赫夫曼树 package tree.huffmantree;import java.util.*;public class HuffmanCode {pub ...
最新文章
- CSS3属性之text-overflow:ellipsis,指定多行文本中任意一行显示...
- 朴素贝叶斯—疾病的预测
- RAC IP 地址修改
- java中redis实现篇
- sdut1283Five in a Row, Again
- 创新数字音频处理技术带来消费电子产品差异化用户体验(转)
- FPGA学习---Quartus II新建工程
- mysql mvcc 的理解
- IDEA设置生成带注释的getter和setter解决方案 (图文教程)
- vue组件系列3、查询下载
- 彻底解决android读取中文txt的乱码(自动判断文档类型并转码
- 网络克隆安装linux系统下载安装,pxe网刻工具_诚龙网刻教程_网络克隆安装windows7...
- ESP32-C3入门教程 WiFi篇⑥——基于串口的 WiFi 智能配网
- 工程图字体宋体仿宋_宋黑仿变各种字体的审美禀赋
- 修改hexo的主题nexT中的Pisces主题宽度
- 电商网上购物成为非洲人喜欢的一种新颖购物方式
- C语言控制桌面背景图
- Jenkins使用问题记录
- 大数据专业就业岗位有哪些?
- Vmware虚拟机安装Linux系统(cent OS 7 64)