单链表专题

本文详细介绍了链表的基本概念,包括单链表的结构和指针原理,以及单链表的实现过程,涵盖了节点生成、插入、删除和查找等关键操作。重点强调了使用malloc而非realloc创建节点,并讨论了头插和尾插的区别以及如何处理链表为空的情况。最后,提到了链表的分类,主要关注单向非循环链表和带头双向循环链表的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

创作不易,如有帮助,还望三连,谢谢!!!

1.链表的概念及其结构

2.单链表的实现

2.1-1单链表内容打印

2.1-2链表结点生成

2.1-3尾插

2.1-4头插

2.1-5尾删

2.1-6头删

2.1-7查找链表数据

2.1-8指定位置前插入数据

2.1-9删除指定位置节点

3.链表的分类


创作不易,如有帮助,还望三连,谢谢!!!

1.链表的概念及其结构

之前我们学习了顺序表,学习了动态顺序表的功能的实现,那么今天我们就来学习一下线性表中的单链表。

那么,什么是链表呢?

概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表由一个个节点构成,而通过一个节点可以找到另一个节点(通过指针来实现),就比如单链表,它的每个节点中有一个next指针指向下一个节点,所以说它在物理存储结构上是非连续的。

我们之前学过的顺序表在物理存储结构上是连续的(即在内存中是连续存放的),然而链表在逻辑结构上是连续的,因为单链表中的元素是按顺序排列的,并且每个节点都有一个指针指向下一个节点,从而形成了一个逻辑上的连续序列。

这就好比火车一样:

火车的每个车厢都是独立存在的,链表中的节点也是独立存在的;每门车厢都有车门,那么想要打开车门进入下一个车厢,就需要一把钥匙,而链表节点中的指针就是这把“钥匙”。

在链表⾥,每节“⻋厢”是什么样的呢?

与顺序表不同的是,链表⾥的每节"⻋厢"都是独⽴申请下来的空间,我们称之为“结点/节点”
节点的组成主要有两个部分:。当前节点要保存的数据和保存下⼀个节点的地址(指针变量)
图中指针变量plist保存的是第⼀个节点的地址,我们称plist此时“指向”第⼀个节点,如果我们希
望plist“指向”第⼆个节点时,只需要修改plist保存的内容为0x0012FFA0。

那么为什么还需要指针变量来保存下⼀个节点的位置?

我们上面讲了链表在物理存储结构上不一定是连续的,所以说要找到下一个节点不像数组那样通过下标就能找到,所以说我们要通过指针变量来保存下⼀个节点位置才能从当前节点找到下⼀个节点。

单链表每个节点的结构体代码如下:

与顺序表结构体基本相似,除了命名不同和多了一个指向下一个结点的指针外,基本相同,不再赘述。

2.单链表的实现

与顺序表一样,我们最好建立三个文件,分别是SList.h头文件,SList.c

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值