資料結構Huffman樹及編碼

2021-08-02 16:51:18 字數 1116 閱讀 2689

一、 實驗目的

構造乙個哈夫曼樹,並根據所構造的哈夫曼樹求其哈夫曼樹的編碼;

二、 基本思路

將每個英文本母依照出現頻率由小排到大,最小在左,組成乙個序列

每個字母都代表乙個終端節點(葉節點),比較每個字母的出現頻率,將最小的兩個字母頻率相加合成乙個新的節點,將兩個字母從序列中刪除,將生成的節點加入到字母佇列中

重複前面兩步,直到序列中沒有字母為止

進行編碼:

給霍夫曼樹的所有左鏈結』0』與右鏈結』1′

從樹根至樹葉依序記錄所有字母的編碼

三、基本**

1.huffman.h檔案

typedef

structhtnode,*huffmantree;

typedef

char **huffmancode;

void huffmancoding(huffmantree &ht,huffmancode &hc,int *w,int n);

void huffmanselect(huffmantree ht,int k,int &s1,int &s2);

2.主要函式

①select函式

資料結構 Huffman樹

參照書上寫的huffman樹的 結構用的是線性儲存的結構 不是二叉鍊錶 裡面要用到查詢最小和第二小 理論上錦標賽法比較好 但是實現好麻煩啊 考慮到資料量不是很大 就直接用比較笨的先找最小 去掉最小再找第二小的方法了。include include include typedef struct htn...

資料結構 Huffman樹

參照書上寫的huffman樹的 結構用的是線性儲存的結構 不是二叉鍊錶 裡面要用到查詢最小和第二小 理論上錦標賽法比較好 但是實現好麻煩啊 考慮到資料量不是很大 就直接用比較笨的先找最小 去掉最小再找第二小的方法了。include include include typedef struct htn...

資料結構Huffman編碼解碼

1 需求分析 1.1問題描述 問題描述 利用哈夫曼編碼進行通訊可以大大提高通道利用率,縮短資訊傳輸時間,降低傳輸成本。但是,這要求在傳送端通過乙個編碼系統對待傳資料預先編碼,在接收端將傳來的資料進行解碼 解碼 對於雙工通道 即可以雙向傳輸資訊的通道 每端都需要乙個完整的編 解碼系統。試為這樣的資訊收...