c语言的单链表的简单排序
代码如下:
void sortPer(Per **head)
{
Per *novel=NULL;
Per *old=*head;
Per *previous;
Per *current;
Per *min;
system("cls");
while(old!=NULL)
{
previous=old;
min=previous;
current=previous->next;
while(current!=NULL)
{
if(strcmp(min->name,current->name)==1)
{
min=current; //找到最小名字的位置
}
current=current->next;
}
previous=NULL;
current=old;
while(strcmp(current->name,min->name))
{
previous=current; //min前面的结构体的查找
current=current->next;
}
if(previous==NULL)
{
old=old->next;
}
else //min的分离
{
previous->next=min->next;
}
if(novel==NULL)
{
novel=min;
*head=novel;
novel->next=NULL;
}
else //新链表的链接
{
novel->next=min;
novel=novel->next;
novel->next=NULL;
}
}
printf("已成功排序\n");
system("pause");
getchar();
}
我是一位小白,如有什么不足请大佬指出,谢谢。