// 带头结点单链表进行直接插入(升序排序)
void insert(LinkList L)
{
if (L->next == NULL) return;
Node* p = L->next, * q, * s = L;// p: 当前插入结点;q: 在哪个结点之后插入这个结点;s: 上一个插入结点
while (p != NULL)
{
q = L;
while (q->next != p)
{
if (q->next->data > p->data && (q == L || q->data < p->data)) // 头结点 或 其余结点 之后插
{
s->next = p->next;
p->next = q->next;
q->next = p;
p = s;
break;
}
q = q->next;
}
s = p;
p = p->next;
}
}
这个可以实现单链表的直接插入吗?
最新推荐文章于 2024-08-16 21:01:11 发布