已经建立了链表,共有k个节点,要求对每个节点按照节点中的count数值大小排序,
count为int型变量,我曾用冒泡法排序,但是可能是语句顺序有问题,始终无法运行,请各位高手赐教。
很麻烦的!
struct num
{
int count;
struct num * next;
};
typedef struct num LINK
LINK * sort(LINK * head)
{
LINK * now,* base=head;
LINK * netn,* netb,*befb,* befn;
while(base->next!=NULL)
{
if(head->next==base)
befb=head;
else if(head==base)
befb=NULL;
else
befb=befb->next;
befn=base;
netb=base->next;
for(now=base->next;now->next!=NULL;now=now->next)
{
befn=befn->next;
netn=now->next;
if(base->count>now->count)
{
base->next=now->next;
befn->next=base;
now->next=netb;
befb->next=now;
base=befb->next;
now=befn->next;
}
}
}
for(now=head;;now=now->next)
{
if(now->count<=base->count&&now->next->count>base->count)
{
base->next=now->next;
now->next=base;
befb->next=NULL;
}
}
return(head);
}
//213
//p3->next:2,p1:2;
p3->next=p1->next;
//p3->next:1
p1->next=p1->next->next;
//p1->next:3
p3->next->next=p1;
//p3->next->next:2;
//now
//p3->next:1,p1:2,p1->next:3