畅谈链表 --- 初级篇4 ---谈谈链表的插入与删除操作

首先在浏览本博客前,各位看客可以先去查看一下我过去的几篇博客。尤其是第一篇,即我对链表这个结构建立起的架构。

畅谈链表—初级篇1—谈谈链表结构本身
畅谈链表—初级篇2—谈谈链表的头指针与头结点
畅谈链表—初级篇3—谈谈链表的头插法与尾插法

插入操作

我们可以把插入操作看作是街区的扩建,那么这幢大楼选址完成且落成后,我们需要做的就是把新大楼前一幢房子的路牌指向这座新大楼,而把新大楼的路牌指向前一幢房子原来的路牌,话不多说,一图胜千言。
在这里插入图片描述
首先我们将新落成的2号房的路牌指向3号房,而3号房过去就是由1号房的路牌指向的(house1->next),其次再将1号房的路牌指向2号房。

house2->next = house1->next; // 1号房的路牌过去就指向3号房,即这里路牌已经存在了,我们没有必要再造一个路牌
house1->next = house2; // 新造一个路牌,让1号房的路牌指向新的2号房 

很多初学者在刚开始写这个操作的时候会将路牌的顺序写反,让我们来具体分析一下他们到底错在哪里。

house1->next = house2; 
house2->next = house1->next;

我们不难发现,我们首先造出了house1的路牌指向了新的2号房,那么此时的house1->next就已经变成了house2,那么这个house2的路牌指向自己是个什么鬼呢?是怕自己不够醒目嘛hhh…且这个街区的3号房的路牌也不复存在,来这个街区拜访的人们无法通过路牌找到3号房,这个街区就乱了套了,即这个链表出现了断链现象!
在这里插入图片描述

删除操作

而删除操作就更加简单了,我们把这个操作想象成拆除违建,在下面的例子中,我们假设3号房是豆腐渣工程,需要拆除,我们要做的就是改变2号房路牌的指向,而这个路牌可以用现成的,即过去这个3号房指向4号房的这个路牌。房子有问题,我们没必要和路牌过不去啊。
在这里插入图片描述
于是代码也不难写出

house2->next = house3->next; // house2的路牌改变指向,把原来house3的路牌直接给house2使用
free(house3); // 将house3拆除

熟练掌握插和删的操作是必要的!毕竟一个程序员什么都不会也一定要学会增改删查…

本期的畅谈链表就和大家聊到这里,你的关注就是我莫大的动力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值