You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

这段C语言单链表插入代码的插入位置是表头、指定位置还是表尾?

这段C语言单链表代码是在链表末尾执行插入操作

咱们一步步拆解这段代码的运行逻辑,帮你搞明白:

  1. 创建新节点
nn = (struct node*) malloc(sizeof(struct node));

这行代码给新节点(nn)分配内存,要是内存分配失败,就打印提示并退出函数。

  1. 给新节点赋值
printf("\n enter the item:");
scanf("%d",&i);
nn->info = i;
nn->link = NULL;

先让你输入要插入的整数,把这个数存到新节点的info字段里;同时把新节点的link设为NULL——因为它最后会成为链表的末尾节点,后面不会再接其他节点。

  1. 核心插入逻辑
  • 如果start == NULL,说明链表现在是空的,没有任何节点。这时候把链表的头指针start和尾指针curr都指向新节点nn,相当于初始化了链表。
  • 如果链表已经有节点了,就执行:
    curr->link = nn;
    curr = nn;
    
    curr一直指向当前链表的最后一个节点,把它的link指向新节点,就把新节点接在了链表末尾;然后把curr更新为新节点,这样下次插入时,curr还是指向最后一个节点。

这种每次把新节点加到链表最后的方式,叫做尾插法。

内容的提问来源于stack exchange,提问作者Adyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:33:01