構(gòu)造哈夫曼樹
哈弗曼樹中沒有度為一的節(jié)點,是標準的二叉樹,所以有n個葉子結(jié)點時,需要一個長度為2n-1的一維數(shù)組存儲哈弗曼樹的結(jié)點。
(1)、n個葉子節(jié)點只有weight權(quán)值,處理非葉子節(jié)點,從ht[i](ht[1]~ht[n-1])中找到ht[i].weight最小的兩個節(jié)點ht[s1]和ht[s2],這就是Select(int n,int &s1,int & s2,HTNode *ht)函數(shù)完成的功能。
(2)、調(diào)用select函數(shù),并將ht[s1]和ht[s2]作為ht[l]的左右子樹,即ht[s1]和ht[s2]雙親節(jié)點為ht[l],新的根節(jié)點的權(quán)值為其左右子樹權(quán)值之和, ht[l].weight=ht[s1].weight+ht[s2].weight
標簽:
樹
節(jié)點
上傳時間:
2016-06-13
上傳用戶:ztj182002