堆中的最大重量

Maximal weight in a heap

本文关键字:      更新时间:2023-10-16

我试图用这个函数计算堆中的最大权重:

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。这有点太大了!

任何想法?

if (x > max_size) 

应为

if (x >= max_size)

c++数组从0到…max-1。

你可以试试白色

if(x >= max_size)
相关文章:
  • 没有找到相关文章