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