typedef struct node
{
int data; //数据域
struct node *next; //指针域 next
}linklist,*link;
void Insertsort(link L) //插入排序函数
{
link p,q,ru;
p=L->next; //p指针指向L的第一个节点
L->next=NULL; // 置空链表,然后将原链表中的节点逐个插入有序表中
while(p!=NULL) //p工作指针直到原链表末尾
{
r=L;
q=L->next; //q指向原链表的节点
while(q!=NULL&&q->data<=p->data) //q工作指针直到链表末尾,并且q的数据要<=p的数据
{
r=q; //r指针指向q
q=q->next; //q工作指针继续往后移动
}
u=p->next; //u指针指向待插入的节点
p->next=r->next; //然后将p连接到有序表中
r->next=p; //连接p到有序表中
p=u; //p工作指针指向u
}
}