发布网友
发布时间:2022-04-23 02:06
共4个回答
热心网友
时间:2023-10-17 18:49
追答当然看到最后的;了,如果t = first时for 循环结束,那么把t指向的节点插入新链表不就等价于把first指向的节点插入新链表吗?所以要在插入前更新first的值啊。感觉你还不是很理解整个程序的思路,在纸上画个图,一步步看一下。
至于标准的插入,或许我说夸张了吧,我也不是多么牛的人,就能说谁是标准。既然你要给个例子,那把我很久前写的一个插入排序拿出来吧,写的很ugly,献丑了。希望别贻笑大方。
//注意这个链表是带空头结点的。
List *insert_sort_list (List *head)
{
List *p = head->next;
List *q = head;
List *temp = NULL;
if (p->next == NULL)
return NULL;
else
{
while (p && p->next)
{
q = head;
/*查找插入位置*/
while (q->next->data next->data)
q = q->next;
/*如果要插入的位置不与原位置相同,则执行插入*/
if (q != p)
{
temp = p->next;
p->next = temp->next;
temp->next = q->next;
q->next = temp;
}
else
p = p->next;
}
}
return head;
}
热心网友
时间:2023-10-17 18:49
热心网友
时间:2023-10-17 18:50
热心网友
时间:2023-10-17 18:51