将单链表按照递增排序
点击查看代码
void inorder(linklist &l)
{
lnode *p = l->next, *r, *q;
// 摘下头结点作为有序表
l->next = nullptr;
while (p)
{
// r和p遍历无序表
r = p;
p = p->next;
// q遍历有序表,找出无序表中的元素在有序表中插入的位置
q = l;
while (q->next != nullptr && q->next->data <= r->data)
{
q = q->next;
}
// 插入元素
r->next = q->next;
q->next = r;
}
}