p1=p4=head;
while(p1->next!=NULL){
p2=p1->next;
p3=p1;
while(p2!=NULL){
if(strcmp(p1->num,p2->num)>0){
if(p1==head){
p3->next=p2->next;
head=p2;
p2->next=p1;
p1=head;
p2=p1->next;
p3=p1;
}
else {
p3->next=p2->next;
p4->next=p2;
p2->next=p1;
p1=p2;
p2=p1->next;
p3=p1;
}
}
else {
p3=p2;
p2=p2->next;
}
}
p4=p1;
p1=p1->next;
}
应该可以,你试试。