資料結構 哈弗曼樹的建立

2021-08-21 22:14:11 字數 944 閱讀 5812

哈弗曼樹的建立

帶權路徑長度的計算

#include#include#include#include#include using namespace std;

typedef structhtnode, *huffmantree;

//選擇所有節點中權重最小的兩個節點的下標

void selectmin(huffmantree ht, int n, int &s1, int &s2)

else

}} if(ht[s1].weight > ht[s2].weight)

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

else if(ht[i].weight < ht[s2].weight)

} }}

void createhuffmantree(huffmantree &ht)

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

// 第乙個節點的權重儲存所有節點的個數

ht[0].weight = m;

/***********初始化完成,開始構建哈夫曼樹**********/

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

int huffmantreewpl_(huffmantree ht, int i, int deepth)

else }

int huffmantreewpl(huffmantree ht)

void print(huffmantree ht)

}void destoryhuffmantree(huffmantree &ht)

int main()

執行結果如下:

參考:

資料結構 哈弗曼樹

code for fun created by dream whui 2015 2 8 include stdafx.h include using namespace std typedef struct 定義哈弗曼樹的結構 htnode,huffmantree typedef char huff...

資料結構哈弗曼樹

include using namespace std define maxvalue 1000 define n 100 typedef struct hnodetype typedef structhcodetype n為葉子節點的個數 void menu void create haffman...

資料結構 哈弗曼樹

哈夫曼樹應用例項 哈夫曼編碼 關鍵 要設計長度不等的編碼,則必須使任一位元組的編碼都不是另一字元的編碼的字首 字首編碼。解碼過程 分解接收字串,遇 0 向左,遇 1 向右,一旦達到葉子結點,則譯出乙個字元,反覆由根出發,直到解碼完成。特點 每一碼都不是另一碼的字首,絕不會譯錯。哈弗曼樹的構造 哈弗曼...