0
我試圖計算的最大重量在使用此功能堆:最大重量
unsigned int left(unsigned int x)
{return 2*x+1;}
unsigned int right(unsigned int x)
{return 2*x+2;}
unsigned int max_way (unsigned int* feld, int x, int max_size)
{
if (x > max_size)
return 0;
else
return feld[x] + std::max(max_way(feld, left(x), max_size), max_way(feld, right(x), max_size));
}
所以我嘗試用一個小例子:
unsigned int feld[] = {3,7,4,2,4,6,8,5,9,3};
std::cout << max_way(feld, 0, 10);
結果134514494.這有點大!
任何想法?
這看起來並不像我所聽過的任何堆。預期的結果是21?因爲在我的頭上模仿給出21. –
看起來像一堆給我。我就是這樣回答他的問題的。堆是具有堆屬性的任何結構:如果B是A的子節點,則鍵(A)≥鍵(B)。這裏的關鍵是索引。 – drdwilcox