void Link::LinkSort()
{
Node *h1,*h2;
Node *p,*q,*t;
h2=h1=Head;
h2=h2->GetNext();
h1->SetNext(NULL);
for(;h2!=NULL;)
{
t=h2;
for(p=h1,q=p;(q!=NULL)&&(t->Getd()>q->Getd());p=q,q=q->GetNext());
h2=h2->GetNext();
if(q==h1)
{
t->SetNext(q);
h1=t;
}
else
{
p->SetNext(t);
t->SetNext(q);
}
}
Head=h1;
}
堆排序吧