<分区>
我正在尝试使用此函数计算堆中的最大重量:
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,有点大了!
有什么想法吗?