哈夫曼樹的建立 源程式 注釋 執行結果

2021-08-29 00:23:53 字數 811 閱讀 2249

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 先找了兩個值,然後一直比較找最小,也可...