c语言单链表链表如何插入多个节点

c语言单链表链表如何插入多个节点,第1张

如果已知一个节点指针pre和一个节点指针cur,要把cur插入到pre节点之后,很显然要保证链表不会断开而丢失后面的节点,要先把后面的节点指针(指向lat的指针)保存下来,即有cur->next = pre->next,然后把cur连接的一串链表连接到pre后面,即pre->next = cur

上面介绍了,在一个节点之后插入节点的情况。这是通常的情况。如果要向一个链表的头部插入节点,就只需要将新节点的下一个指针指向链表的头指针即可。

在这种情况下,有两点要注意:

1,链表是否为空链表

2,要插入的节点是不是空指针。

代码实现:

//向单链表中插入一个节点(插入在链开始处)

//输入参数:单链表的头指针和要插入的节点指针

//输出参数:无

//返回值:指向单链表的头指针

SingleList* Insert(SingleList *head,SingleList *node)

{

if(node == NULL)

{

return head

}

else if(head == NULL)

{

return node

}

node->next = head

head = node

return head

}

node

*insert(node

*head,node

*p)

//

结点也要传指针

node

*p

{

node

*p1,*p2

if(head->data>=p->data){

p->next=head

head=p

return(head)}

p2=p1=head

while(p2->next&&p2->data<p->data)//循环结束的条件是p2指向尾结点或找到不小于

p

中数据的结点。

{

p1=p2

p2=p2->next

}

//此时,p2已经指向要插入的位置,只需将p结点插入到p2之后即可。

//if(p2->data<p-data){

无需此判断了。

p2->next=p

p->next=p2->next}

//改为这样。这里不是

判断表

尾,是插入p结点。

/*else{

同样无必要。

p->next=p2

p1->next=p

}

*/

return(head)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11639286.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存