第十一周專案1 驗證演算法(4)

2021-07-24 12:13:17 字數 1187 閱讀 9048

程式**:

/*              

* 檔名稱:1.cpp

* 完成日期:2023年11月10日

* 版本號:vc6.0

*

* 問題描述:哈夫曼編碼的演算法驗證

* 輸入描述:無

* 程式輸出:測試結果

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

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

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

typedef struct

htnode;

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

typedef struct

hcode;

//構造哈夫曼樹

void createht(htnode ht,int n)

{ int i,k,lnode,rnode;

double min1,min2;

for (i=0; i<2*n-1; i++) //所有結點的相關域置初值-1

ht[i].parent=ht[i].lchild=ht[i].rchild=-1;

for (i=n; i<2*n-1; i++) //構造哈夫曼樹

{ min1=min2=32767; //lnode和rnode為最小權重的兩個結點位置

lnode=rnode=-1;

for (k=0; k<=i-1; k++)

if (ht[k].parent==-1) //只在尚未構造二叉樹的結點中查詢

知識點總結:

選定兩個最小的葉子節點相加,得到他倆的雙親節點,接著找最小的葉子節點,與最小葉子節點相加得到雙親節點,如此下去直到得到根節點,完成二叉樹。

學習心得:

此程式較複雜

第十一周專案1 驗證演算法(4)

檔名稱 idea.cpp 完成日期 2015年12月07日 include include define n 50 葉子結點數 define m 2 n 1 樹中結點總數 哈夫曼樹的節點結構型別 typedef struct htnode 每個節點哈夫曼編碼的結構型別 typedef struct ...

第十一周專案1驗證演算法

define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 btnode findnode btnode b,elemtype x...

第十一周專案1 驗證演算法

問題及 檔名稱 1.cpp 完成日期 2016年11月10日 版本號 v1.0 問題描述 實現二叉樹的層次遍歷演算法,並使用不同測試資料建立二叉樹,進行測試。請利用二叉樹演算法庫。輸入描述 二叉樹字串str 程式輸出 測試結果 btree.h define maxsize 100 typedef c...