6.6.2赫夫曼编码
生活随笔
收集整理的這篇文章主要介紹了
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赫夫曼编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3dcaptcha php,php实现的
- 下一篇: 4.2串的表示和实现