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

2021-08-10 13:57:03 字數 1024 閱讀 1665

main.cpp

#include 

#include

#define n 50 //葉子結點數

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

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

typedef

struct

htnode;

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

typedef

struct

hcode;

//構造哈夫曼樹

void createht(htnode ht,int n)

hc.start++; //start指向哈夫曼編碼最開始字元

hcd[i]=hc;

}}//輸出哈夫曼編碼

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

m+=ht[i].weight;

sum+=ht[i].weight*j;

printf("\n");

}printf("\n 平均長度=%g\n",1.0*sum/m);

}int main()

; double fnum= ;

htnode ht[m];

hcode hcd[n];

for (i=0; iprintf("\n");

createht(ht,n);

createhcode(ht,hcd,n);

disphcode(ht,hcd,n);

printf("\n");

return

0;}

執行過程:

實踐心得:每次查詢最小的權重的兩個節點是關鍵,對這個尋找最小和次小的編碼還需要認真分析下

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

問題及 檔名稱 xxy.作 者 徐瀟雨 完成日期 2017 年 11 月 2 日 版 本 號 v1.0 問題描述 驗證哈弗曼編碼 輸入描述 無 程式輸出 哈弗曼編碼 include include define n 50 葉子結點數 define m 2 n 1 樹中結點總數 哈夫曼樹的節點結構型別...

第十周專案4哈夫曼編碼的演算法驗證

檔名稱 cpp1.作 者 劉思源 完成日期 2017 年 11 月 8 日 版 本 號 v1.0 問題描述 實現二叉樹的哈夫曼編碼的演算法。輸入描述 無需輸入 程式輸出 實現各種演算法的函式的測試結果 cpp view plain copy include include define n 50 葉...

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

include include define n 50 葉子結點數 define m 2 n 1 樹中結點總數 哈夫曼樹的節點結構型別 typedef struct htnode 每個節點哈夫曼編碼的結構型別 typedef struct hcode 構造哈夫曼樹 void createht htn...