链表排序
void sort(LinkList *&L)
{
LinkList *p, *pre, *q;
p = L->next->next; //p指向L的第2个数据节点
L->next->next = NULL; //构造只含有一个数据节点的有序表
while (p != NULL)
{
q = p->next; //q保存*p节点后继节点的指针
pre = L; //从有序表开头进行比较
while (pre->next != NULL&&pre->next->data < p->data) //在有序表中查找*p插入的前驱节点*pre
pre = pre->next;
p->next = pre->next; //将*p插入*pre之后
pre->next = p;
p = q; //扫描原链表余下的节点
}
}
GitHub:https://github.com/Yejy813
博客园:https://www.cnblogs.com/blog-yejy
Copyright ©2018 yejy
【转载文章务必保留出处和署名,谢谢!】