第十一周專案4 哈夫曼編碼

2021-07-07 08:45:43 字數 1077 閱讀 4533

/*    

04.*檔名稱:cengcibianli.cpp

06.*完成日期:2023年11月21日

07.*版本號:vc++6.0

08.*

09.*問題描述:哈夫曼

10.*輸入描述:無

11.*程式輸出:哈夫曼

12.*/

#ifndef head_h_included

#define head_h_included

#include #include #define n 50 //葉子結點數

#define m 2*n-1 //樹中結點總數

//哈夫曼樹的節點結構型別

typedef struct

htnode;

//每個節點哈夫曼編碼的結構型別

typedef struct

hcode;

void createht(htnode ht,int n);

void createhcode(htnode ht,hcode hcd,int n);

void disphcode(htnode ht,hcode hcd,int n);

#endif // head_h_included

#include"head.h"

int main()

; double fnum= ;

htnode ht[m];

hcode hcd[n];

for (i=0; i執行結果:

知識點總結:

根據權值越大越靠近根節點,權值越小越遠離根節點的原則,兩個最小的子樹作為左右子樹構造一棵新的二叉樹,而二叉樹的跟是其左右子樹的權值之和;再用新得到的二叉樹代替選取的兩棵樹,重複以上步驟,直到所有的節點都選完。

第十一周專案1 驗證演算法(4) 哈夫曼編碼

問題與 檔名稱 main.cpp 完成日期 2015年11月20日 版本號 v1.0 問題描述 哈弗曼編碼的演算法驗證 輸入描述 無 程式輸出 若干資料 include include define n 50 葉子結點數 define m 2 n 1 樹中結點總數 哈夫曼樹的節點結構型別 typed...

第十一周專案一(4) 哈夫曼樹

include include include btree.h int main double fnum htnode ht m hcode hcd n for i 0 i include include btree.h void createht htnode ht,int n int i,k,l...

第十一周 專案一 (4)哈夫曼樹

檔名稱 main.cpp 完成日期 2015年11月12日 版本號 codeblocks 問題描述 哈夫曼編碼的演算法驗證 輸入描述 無 程式輸出 見執行結果 include include define n 50 葉子結點數 define m 2 n 1 樹中結點總數 哈夫曼樹的節點結構型別 ty...