資料結構程設計 哈弗曼編碼

2021-06-01 23:57:39 字數 888 閱讀 2992

2011-06-12 16:34

70人閱讀收藏

舉報 ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

#include "iostream"

using

namespace std;  

#define max 21

typedef

struct

huffnode;  

typedef

struct

huffcode;  

int main(void)  

for(i=1;i<=2*n-1;i++)  

ht[i].parent=ht[i].left=ht[i].right=0;  

for(i=n+1;i<=2*n-1;i++)  

else

if (ht[k].weight  

ht[l].parent=i;  

ht[r].parent=i;  

ht[i].weight=ht[l].weight+ht[r].weight;  

ht[i].left=l;  

ht[i].right=r;  

}  }  

}  for(i=1;i<=n;i++)  

hcd[i]=d;  

}  cout<<"輸出huffman編碼: /n";  

for(i=1;i<=n;i++)  

system("pause");  

return 0;  

資料結構之哈弗曼樹與哈弗曼編碼

一.哈弗曼樹和哈弗曼編碼先知 哈弗曼樹是二叉樹中一種特殊的樹,也被稱為最優二叉樹。其通過某種規則 權值 來構造出一哈夫曼二叉樹,在這個二叉樹中,只有葉子節點才是有效的資料節點,其他的非葉子節點是為了構造出哈夫曼而引入的!哈夫曼編碼是通過哈夫曼樹進行的一種編碼,一般情況下,以字元 0 與 1 表示。編...

哈弗曼編碼 哈弗曼樹

哈弗曼編碼是依賴於字元使用頻率來建立的一種編碼,通過把使用頻率低的字元分配相對較多的01編碼,而使用頻率高的分配相對較低的01編碼,來建立最小的帶權路徑長度的樹,來最大化的獲得編碼儲存空間的一種編碼規則。這個樹稱為哈弗曼樹,也稱為最優二叉樹。這樣可以確定每乙個字元的編碼不可能成為其他字元編碼的坐子串...

哈弗曼編碼

include include include define my strmax 100 define infinity 1000000 typedef struct htnode,huffmantree 動態分配陣列儲存赫夫曼樹 typedef char huffmancode 動態分配陣列儲存赫...