/*
* 檔名稱:1.cpp
* 作 者:張延飛
* 完成日期:2023年11月9日
* 版 本 號:v1.0
* 問題描述:實現哈夫曼樹的演算法驗證,並測試資料。
* 輸入描述:無
* 程式輸出:測試資料 */
[cpp]
view plain
copy
#include
#include
#define n 50 //葉子結點數
#define m 2*n-1 //樹中結點總數
//哈夫曼樹的節點結構型別
typedef
struct
htnode;
//每個節點哈夫曼編碼的結構型別
typedef
struct
hcode;
//構造哈夫曼樹
void
createht(htnode ht,
intn)
else
if(ht[k].weight
}
ht[i].weight=ht[lnode].weight+ht[rnode].weight;
ht[i].lchild=lnode;
ht[i].rchild=rnode;
ht[lnode].parent=i;
ht[rnode].parent=i;
}
}
//實現哈夫曼編碼
void
createhcode(htnode ht,hcode hcd,
intn)
hc.start++; //start指向哈夫曼編碼最開始字元
hcd[i]=hc;
}
}
//輸出哈夫曼編碼
void
disphcode(htnode ht,hcode hcd,
intn)
m+=ht[i].weight;
sum+=ht[i].weight*j;
printf("\n"
);
}
printf("\n 平均長度=%g\n"
,1.0*sum/m);
}
intmain()
;
double
fnum= ;
htnode ht[m];
hcode hcd[n];
for(i=0; i
printf("\n"
);
createht(ht,n);
createhcode(ht,hcd,n);
disphcode(ht,hcd,n);
printf("\n"
);
return
0;
}
執行結果:
第十周專案一
all rights reservrd.版本號 v1.0 問題描述 二叉樹演算法驗證 執行並重複測試教學內容中涉及的演算法。改變測試資料進行重複測試的意義在於,可以從更多角度體會演算法,以達到逐漸掌 握演算法的程度。使用你的測試資料,並展示測試結果,觀察執行結果,以此來領會演算法。一 層次遍歷演算法...
第十周 專案3 1
檔名稱 main.cpp 作者 孫彩虹 完成日期 2015年11月23日 問題描述 計算二叉樹節點個數 include include ifndef btree h included define btree h included define maxsize 100 typedef char el...
第十周 專案三
計算機控制工程學院 姓名 陳飛 班級 計156 2 問題及 cpp view plain copy 1 計算二叉樹節點個數 include include btree.h int nodes btnode b int main cpp view plain copy 執行結果 cpp view pl...