题目链接:点击打开链接
题目大意:略。
解题思路:略。
AC 代码
void swap(ElementType *a, ElementType *b)
{
ElementType c=*a;
*a=*b;
*b=c;
return;
}
void PercolateUp( int p, PriorityQueue H )
{
while((p>>1)>=1)
{
if(H->Elements[p]<H->Elements[p>>1]) swap(&(H->Elements[p]),&(H->Elements[p>>1]));
else return;
p>>=1;
}
}
void PercolateDown( int p, PriorityQueue H )
{
int len=H->Size, t;
while((p<<1)<=len)
{
t=p<<1;
if(t<len && H->Elements[t]>H->Elements[t+1]) t++;
if(H->Elements[t]<H->Elements[p]) swap(&(H->Elements[t]),&(H->Elements[p]));
else return;
p=t;
}
}