/*
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...