下面的是main()函数中的一个子函数,其中的链表数据域为:
typedef struct node
{ char num[10];
char name[20];
int score;
struct node *next;
}node;
以下创建的是有头节点的链表
void sort(node *h)
{
node *p,*p1,*p2,*p3;
if(h->next==NULL) /*当链表为空*/
{ printf("no node!");
return;
}
p1=h->next->next;
h->next->next=NULL;
p3=p1;
while(p1!=NULL)
{
p=h;
p2=h->next;
p3=p3->next;
while(p2!=NULL)
{ if(p1->score>p2->score)
{
p->next=p1;
p1->next=p2;
p1=p3;
break;
}
else
{
p=p->next;
p2=p2->next;
}
}
if(p->next==NULL)
{
p->next=p1;
p1->next=NULL;
p1=p3;
}
}
}
(注:这是在Windows下运行的.)
阅读(2335) | 评论(0) | 转发(0) |