1 #include2#define maxlen 100
34 typedef struct
//定義結構體
5 htnode;
89 typedef htnode hfmt[maxlen]; //
定義乙個結構陣列型別
1011
int n; //
定義乙個全域性變數儲存權值個數
1213
14void
inithfmt(hfmt t)
15 24}25
26void
inputweight(hfmt t)
27 34}35
36void selectmin(hfmt t,int i,int *p1,int *p2) //
選擇兩個權值最小的結點
37 49}50
}5152for(j=0;j<=i;j++) //
從前面下標為 0 到 n-1 的結點中
5360}61
}62}63
6465
6667
6869
7071
void creathfmt(hfmt t) //
構造哈夫曼樹,t[2*n-2]為其根結點
72 8687}
8889
void printhfmt(hfmt t) //
輸出哈夫曼樹。只輸出構造結點。
90 100
}101
102void
main()
103
執行結果:
哈夫曼編碼源程式
哈夫曼編碼 一 源程式 include include include include huffman 樹的儲存結構 define n 8 葉子數目根據需要設定 define m 2 n 1 huffman 樹中結點總數 typedef struct htnode typedef htnode hu...
哈夫曼樹的建立以及哈夫曼編碼
主要源 如下 include include define max num 105 typedef struct htnode,htree void selecttwomin htree ht,int n,int s1,int s2 ht s1 visited 1 將最小的頻率對應的結點標記為已被訪...
哈夫曼樹的建立
include include using namespace std typedef struct node tree void find tree t,int s1,int s2,int n int creat tree t,int n int s1,s2 先找了兩個值,然後一直比較找最小,也可...