-->
当前位置:首页 > 题库 > 正文内容

程序填空题:建立最大堆

Luz4年前 (2021-05-10)题库2390
下列代码的功能是将存有`N`个元素的数组`A[]`调整为最大堆。

```c++
#define leftchild(i) ( 2*(i)+1 )

void BuildMaxHeap( ElementType A[], int N )
{ int i, j, child;
ElementType Tmp;

for ( i = (N-1)/2; i >= 0; i-- ) {
j = i;
for ( Tmp = A[j]; leftchild(j) < N; j = child ) {
child = leftchild(j);
if (@@[child!=N-1 && A[child+1]>A[child]](4))
child ++;
if (@@[Tmp < A[child]](4)) A[j] = A[child];
else break;
}
@@[A[j] = Tmp](4);
}
}
```
**感谢燕山大学窦燕老师修正题目!**





答案:
第1空:child!=N-1 && A[child+1]>A[child]

第2空:Tmp < A[child]

第3空:A[j] = Tmp

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。