第十周專案一

2021-08-10 13:57:03 字數 1681 閱讀 4504

/*    

* 檔名稱: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...