链表排序 各位大大们看一下 指导下
struct adlist{char name[50];//名字
char home[100];//家庭住址
char workd[100];//工作地点
char academy[50];//学院
char profession[50];//专业
char tele[20];//电话
char phone[20];//座机
char QQ[20];
char Email[50];
char job[50];
struct adlist*next;
}adl;
struct adlist* sort(struct adlist*head)//排序
{ //struct adlist*head;
struct adlist*p,*p1,*p2;
for(p=head->next;p->next!=NULL;p=p->next)
{
if(strcmp(p->QQ,(p->next)->QQ)>0)
{ p1=p2=(struct adlist*) malloc(LEN);
*p1=*p;
while(p1->name[0]!='0')
{n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct adlist*)malloc(LEN);
}
}
}
p2->next=NULL;
printf("按QQ排序\n");
//print(p2);
return(head);
}