链表

系列# 系列文章目录

@[TOC]系列文章目录
前言
一、链表的概述
二、链表的操作
1.动态链表的创建
2.输出链表
3.插入链表
4.删除链表
5.完整的链表

前言

第一次写链表文章中有不妥的地方希望来留言。

一、链表的概述

链表是一种常见的数据结构。我们都使用过数组存放数据,但是使用数组时要先指定数组中包含的元素个数,即为数组的长度。但是如果向这个数组中加入的元素超过了数组的大小时,便不能将内容全部保存。
这时希望有一种存储方式,其存储元素不受限定的,当进行添加时,存储的个数就会随之改变。
如图为链表结构示意图。
在这里插入图片描述
最后一个元素指针指向NULL。
下面就看看链表怎么创出来的吧。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、链表的操作

1.动态链表的创建

我们以班级为例,链表中的节点表示学生
首先创建节点结构,表示每一位学生
在这里插入图片描述
Num为学号。
pNext用来指向下一个节点的指针。
然后开始创建列表,最后返回链表的头文件。
在这里插入图片描述
1.Pend指针最后指向最后的节点。
2.而Pnew指针指向最后指向的空间不需要,最后要释放,防止内存泄漏。
3.最后节点中的pNext指针要指向空,防止非法访问。
下面看看效果
在这里插入图片描述
红方框下面的是下面要介绍的代码效果。

2.输出链表

链表已经创建出来,现在如何将链表中的数据显示输出
代码如下:
在这里插入图片描述
上面绿色字体中一个最后节点输出不出来的问题,是因为一个节点中的pNext指针是指向下一个节点的
如图:
在这里插入图片描述
如果向绿色中的代码写的话,第一次判断的时候就是第二个节点的地址,
那么最后会使最后节点的数据无法显示输出。

3.插入链表

我们应该如何插入数据呢?
我们可以在链表头节点是进行。
代码如图:
在这里插入图片描述
绿色字体中又有一个问题,是因为进行插入数据中,pNew指针是指向头节点的,故不能释放。
我在这说这个问题是因为,很多人用习惯了free函数,一看到是动态开辟的就用free函数释放。故我们要谨慎处理。

删除链表

这次又然后删除呢?
其实想删除某个节点,我们就把那个节点给释放掉,然后把那个节点前后链接起来就行。
代码如下:
在这里插入图片描述
这次绿色的代码没有错误,反而比我写在for中的更加简洁。

完整的链表

代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码效果:
在这里插入图片描述

总结

这就是我写的链表了,可能还有不妥当的地方,请谅解,欢迎留言。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

世_生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值