急求单链表排序!!
发布网友
发布时间:2022-12-17 07:21
我来回答
共1个回答
热心网友
时间:2023-09-14 17:20
pChain sortChain(pChain Head)
{
pChain ptemp=NULL,ppre=NULL,pcur=NULL,ppre2=NULL,pcur2=NULL,newHead=NULL,phead=NULL,pTMP=NULL;
phead=Head;
while(phead)
{
if(!phead->Next)
{
if(!newHead)
{
newHead=phead;
pTMP=newHead;
}
else
pTMP->Next=phead;
break;
}
ptemp=phead;
ppre=ptemp;
pcur=ptemp;
ppre2=ptemp;
pcur2=ptemp;
while(ptemp)
{
if(pcur2->data>ptemp->data)
{
ppre2=ppre;
pcur2=pcur;
}
ptemp=ptemp->Next;
ppre=pcur;
pcur=ptemp;
}
if(pcur2==phead)
{
phead=phead->Next;
pcur2->Next=NULL;
}
else
{
ppre2->Next=pcur2->Next;
pcur2->Next=NULL;
}
if(!newHead)
{
newHead=pcur2;
pTMP=newHead;
}
else
{
pTMP->Next=pcur2;
pTMP=pTMP->Next;
}
}
return newHead;
}
这是我以前写的一个链表排序的函数