c+学习 单链表的头尾节点的添加删除

本次我们学习的是单链表的增删改查,接下来我们根据图片来慢慢展开!

1、头添加、尾添加

如图中所示一般,三格的是链表,后面的两格高的是节点。head为头节点,tail为尾节点,cnt为节点数。我们知道头添加有两种情况,一种是链表里没有节点,还有一种是链表里已经存在节点。

如图:1

  所以我们可以很简单的写出头节点的添加

 创建一个节点node,然后用node节点的指向域next连接原头节点的数据域data,再将链表head与node节点数据域连接,头节点添加完成,判断cnt是否为0,若是,则需要将node节点中的指向域与链表tail相连。

接下来是尾节点的添加

同样的是我们也要判断节点数是否为0 ,如果没有的话,那我们可以直接添加,将head与tail和node相连接;如果有的话,根据结构图我们可以看到要将tail节点中的next与node连接,再将tail与node连接。

2、头删除、尾删除

头删除:先上图分析

 图中我已经画出了情况展示,不过我们还是要先判断,如果没有节点那就没有可以删除的东西嘛,所以也就不运行,存在的话我们就要用指针去复制一次头节点,若是不用指针直接删除会导致后继节点找不到了。

 先用temp指针存储头节点信息,再将head与原本第二的节点连接,最后释放temp。

尾删除:先上图

 

直接上代码,首先判断是否有节点,没有节点直接不运行程序,若是只有一个节点,释放掉该节点,然后将head,tail置空,剩下只有一种情况,有两个及以上节点。

       两个以上的情况我们需要先创建一个指针从头节点开始遍历往后走,走到尾节点前一个节点时,释放掉尾节点

今天的分享到此! 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值