2.3.2 单链表的插入结点操作

--单链表示意图

一、按位序插入(带头结点)

①表头插入

 注意点

1.i=1,while循环不执行

2.时间复杂度为O(1)

3.p!=NULL表示指针p有指向结点

4.头结点为第0个结点

5.p=L表示指针p和L指向位置相同(头结点),p等于L

6.代码段理解

 --malloc函数创建新空间,赋给结点s

--e赋值给结点s.data

--结点s的指针指向.next和结点p的指针指向(p.next)的位置相同(a1.data)

7.代码绿黄不能替换顺序,替换后变为指向s自己

②表中插入

 注意点:

1.i=3,while循环执行2次,p指向第2个结点,p=p->next表示p依次往后扫描

2.s.next指向a3.data

③表尾插入

注意点:

1.j表示p当前指向第几个结点,所以需要累加找到i-1个位置

2.循环表示找到第i-个结点,因为要在该结点后插入新结点

3.s.next指向NULL

4.时间复杂度为最坏O(n),n表示表的长度

5.i>6,i值不合理,return false

 二、按位序插入(不带头结点)

①插在表头

 --L=s,更改头指针L

 ②不插在表头

三、指点结点的后插操作

 

 注意点:

1.指定结点的后续结点是可知的

2.时间复杂度为O(1)

3.内存分配问题

 四、指定结点的前插操作

①插入头指针法

 ②直接改变指定结点的前驱结点的data值

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kzd.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值