#include <iostream>
#include <cstdio>
using namespace std;
int heap[11]={0,85, 55 , 82 , 57 , 68, 92, 99 ,98 , 66 ,56} ; //level
void downAdjust(int low, int high){ //把每个根结点 和 父结点 进行比较,大的就换上去。
int i=low,j=i*2;
while(j <= high){ //如果左孩子存在;
if(heap[j] < heap[j+1] && j+1 <= high) j=j+1;
if(heap[i] < heap[j]){
swap(heap[i],heap[j]);
i=j;
j=i*2;
}else{
break;
}
}
}
void upAdjust(int low ,int high){
int i=high,j = i/2;
while(j >= low){
if(heap[j] < heap[i]){
swap(heap[j],heap[i]);
i=j;
j=i/2;
}else{
break;
}
}
}
int main(int argc, char** argv) {
//create the heap;
int n=10;
for(int i=n/2; i >= 1; i--){
downAdjust(i,n);
}
/* 删除 */
heap[1]=heap[n];
n--;
downAdjust(1,n);
/* end */
/* 添加 */
heap[++n]= 99;
upAdjust(1,n);
/* output */
for(int i=1;i<=10;i++){
printf("%d ",heap[i]);
}
return 0;
}