哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。
輸入有多組資料。
每組第一行輸入乙個數n,接著輸入n個葉節點(葉節點權值不超過100,2<=n<=1000)。
輸出權值。
5 1 2 2 5 9
樣例輸出:
372023年北京郵電大學計算機研究生機試真題
思路:該樹非葉節點的權值和=該哈夫曼樹的帶權路徑長度和。本題就是求所有非葉節點的和。用陣列儲存輸入的陣列,(然後:排序後把最小的兩個數的和放入陣列,然後把那兩個小數去掉。)對新陣列重新排序,重複以上步驟。ac**:
#include
using
namespace
std;
int a[2005];
int main()
sort(a,a+n);
fir = 0;
end = n-1;
while(fir != end)
cout
<< sum << endl;
}return
0;}
九度OJ1172 哈夫曼樹
題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...
九度OJ 1172 哈夫曼樹
由於建立的哈夫曼樹不唯一,所以機試多考察哈夫曼樹的帶權路徑長度和,如此題。此問題最終轉化為利用堆模擬建樹過程,求出非葉節點的權值和 該哈夫曼樹的帶權路徑長度和 無需作出哈夫曼樹的具體結構體 收穫如下 關於哈夫曼樹 該樹非葉節點的權值和 該哈夫曼樹的帶權路徑長度和 關於堆排序 堆排序建堆o n log...
九度OJ 1172 哈夫曼樹
九度oj 1172 哈夫曼樹 哈夫曼樹 huffman tree 給定n 個權值作為 n個葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小,稱這樣的二叉樹為最優二叉樹,即哈夫曼樹 這題可以建樹,也可以不建樹。建樹 include include include define maxvalue 0x7...