6.5-1 试说明HEAP-EXTRACT-MAX在堆A={15,13,9,5,12,8,7,4,0,6,2,1}上的操作过程。
HEAP-EXTRACT-MAX(A)
if(A.heap-size<1) //堆中元素是否为空
error"heap underflow" //如果是空的,那么返回错误
max=A[1] //将最大堆最大元素也就是第一个元素保存起来
A[1]=A[A.heap_size] //将堆中最后一个元素赋值给第一个元素
A.heap_size=A.heap_size-1//堆元素数量减少1
MAX-HEAPIFY(A,1)//保持最大堆的性质
return max//返回这个最大元素
堆A个元素的顺序是: A={1,13,9,5,12,8,7,4,0,6,2}
A={13,1,9,5,12,8,7,4,0,6,2}
A={13,12,9,5,1,8,7,4,0,6,2}
A={13,12,9,5,6,8,7,4,0,1,2}
6.5-2/6.5-4试说明MAX-HEAP-INSERT(A,10)在堆A={15,13,9,5,12,8,7,4,0,6,2,1}上的操作过程。