void Maxheap_In(int start){
int c=start;
int p=(c-1)/2;
int temp=arr[c];
while(c>=0&&temp<arr[p]){
arr[c]=arr[p];
c=p;
p=(p-1)/2;
}
arr[c]=temp;
}
int Maxheap_Insert(int data,int m_size){
if(m_size==m_capacity){
return -1;
}
arr[m_size]=data;
Maxheap_In(m_size);
++m_size;
return m_size;
}
int get_index(int data){
for(int i=0;i<m_size;++i){
if(data==arr[i]){
return i;
}
}
return -1;
}
void Maxheap_Out(int start,int end){
int c=start;
int l=2*c+1;
int temp=arr[c];
while(l<=end){
if(l<end&&arr[l]<arr[l+1]){
++l;
}
if(temp>arr[l]){
break;
}
else{
arr[c]=arr[l];
c=l;
l=2*l+1;
}
}
arr[c]=temp;
}
int Maxheap_Erase(int data){
int index;
if(m_size==0){
return -1;
}
index=get_index(data);
if(index==-1){
return -1;
}
arr[index]=arr[end];
Maxheap_Out(inedx,end-1);
--m_size;
}