单链表插入、删除操作单步解析(十三)

1.单链表定义

每个结点包含数据域和指针域,指针域存储下一个结点的地址。 

2.插入操作

在第i个结点前面,插入一个e结点。

分析:

<1>.s->next = p->next;

如果想在第i个结点之前插入一个e结点,必须找到i结点前的i-1结点,在i-1结点以后插入e结点。

如上图:可以看出左边为i-1结点,右边为i结点。

s:表示指向e结点的指针,即e结点的地址。

p:表示指向i-1结点的指针,即i-1结点的地址。

s->next:表示指向e结点的s指针域存,储下一个结点的地址。

p->next:指向第i个结点的指针,即第i个结点的地址。

翻译:

将指向e结点的s指针的指针域(next),存储了第i个结点的地址(因为p指向i-1结点,p->next指向i结点).

<2>.p->next = s;

s:表示指向e结点的指针,即e结点的地址。

p:表示指向i-1结点的指针,即i-1结点的地址。

翻译:将指向i-1结点的指针p的指针域,存储了指向e结点的指针s(即e结点的地址)。

3.删除操作

删除第i个结点,其实就是把i结点跳过去。

分析:

<1>.p->next = q->next

p:指向i-1结点的指针,即i-1结点的地址。

q:指向i结点的指点,即i结点的地址。

翻译:

将指向i-1结点的指针p的指针域(next),存储了指向i结点的q的指针域的地址,其实q->next存储了第i+1结点的地址,这样就把第i个结点删除了。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Android系统攻城狮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值