九度OJ1172 哈夫曼樹

2022-08-09 07:06:08 字數 717 閱讀 7249

哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。

輸入:輸入有多組資料。

每組第一行輸入乙個數n,接著輸入n個葉節點(葉節點權值不超過100,2<=n<=1000)。

輸出:輸出權值。

樣例輸入:

5  

1 2 2 5 9

樣例輸出:

37
#includestruct

huffman

list[

5000

];int

main()

else

if(list[j].weight1

) }

list[lnode].parent=i;list[rnode].parent=i;

list[i].lchild=lnode;list[n+i].rchild=rnode;

list[i].weight=list[lnode].weight+list[rnode].weight;

ans+=list[i].weight;

}printf(

"%d\n

",ans);

}}

九度OJ1172 哈夫曼樹

題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...

九度OJ 1172 哈夫曼樹

由於建立的哈夫曼樹不唯一,所以機試多考察哈夫曼樹的帶權路徑長度和,如此題。此問題最終轉化為利用堆模擬建樹過程,求出非葉節點的權值和 該哈夫曼樹的帶權路徑長度和 無需作出哈夫曼樹的具體結構體 收穫如下 關於哈夫曼樹 該樹非葉節點的權值和 該哈夫曼樹的帶權路徑長度和 關於堆排序 堆排序建堆o n log...

九度OJ 1172 哈夫曼樹

哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出權值。5 1 2 2 ...