// 向最大堆中添加一个新元素x,并调整为新的堆
void addElementToMaxHeap(int arr[], int n, int x) {
// 扩展数组以容纳新元素
arr[n] = x;
int i = n;
// 从添加新元素的位置开始,向上调整堆
while (i != 0 && arr[i/ 2] < arr[i]) {
// 交换当前元素与父节点
int temp = arr[i];
arr[i] = arr[i / 2];
arr[i/ 2] = temp;
// 移动到父节点的位置
i = i / 2;
}
}
设关键字序列(k 1,k2,„, kn-1 ) 是堆,设计算法将关键字序列(k 1,k2,„, kn-1 ,x) 调整为堆。
于 2023-12-10 15:29:38 首次发布