链表的基础知识

文章目录

概要

链表是一种常见的数据结构,它通过节点之间的连接关系实现数据的存储和访问。链表由一系列节点(Node)组成,每个节点包含数据和指向下一个节点的指针。链表的特点是物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表的基本操作包括创建、插入、删除、查找和反转等。在创建链表时,通常需要定义一个节点结构体,该结构体包含数据域和指针域。插入操作允许在链表的任意位置添加新节点,而删除操作则可以从链表中移除指定的节点。查找操作通常需要遍历整个链表来找到特定的节点。

整体架构流程

如下这是一个数组在内存中的存放方式是连续的,每一个变量都是连续分布的,也是连续存储的

但在真正的数据结构中,数据的存储是不连续的,那为了使这些不连续的数据之间有连续,我们加入了链表这个概念,通过链表将这些数据进行连接。

1.单向链表

其指针只指向下一个数据块,弊端就在于其只能查找下一个数据块的数据,若想查询上一个数据快的数据则无法查找

2.双向链表

3.循环链表

4.双向循环链表

小结

链表的优点包括灵活的内存管理、允许在链表任意位置上插入和删除节点。此外,链表不需要一整块连续的存储空间,这使得它在动态数据存储方面具有优势。然而,链表也存在一些缺点,例如不支持O(1)时间按索引存取数据,查找操作可能需要遍历整个链表。

链表在计算机科学中具有广泛的应用,如动态内存分配、文件系统管理、队列和栈的实现等。在现代编程语言中,链表被广泛应用于各种场景,例如在C++中用于实现动态数据存储和队列、栈等数据结构。

总之,链表作为一种基础的数据结构,在计算机科学和编程中占据重要地位。通过掌握链表的基本概念、操作和应用,可以有效提升编程技巧和算法设计能力。

在日后的文章中我会以rt---thread实战为项目给大家讲解链表的使用

相关推荐
我也不曾来过138 分钟前
list底层原理
数据结构·c++·list
mit6.8242 小时前
[贪心_7] 最优除法 | 跳跃游戏 II | 加油站
数据结构·算法·leetcode
keep intensify2 小时前
通讯录完善版本(详细讲解+源码)
c语言·开发语言·数据结构·算法
shix .2 小时前
2025年PTA天梯赛正式赛 | 算法竞赛,题目详解
数据结构·算法
egoist20233 小时前
【C++指南】告别C字符串陷阱:如何实现封装string?
开发语言·数据结构·c++·c++11·string·auto·深/浅拷贝
Gsen28193 小时前
AI大模型从0到1记录学习 数据结构和算法 day20
数据结构·学习·算法·生成对抗网络·目标跟踪·语言模型·知识图谱
一定要AK3 小时前
天梯——L1-110 这不是字符串题
数据结构·c++·算法
2401_858286114 小时前
E47.【C语言】零散的练习题(1)
c语言·数据结构·算法·指针
SsummerC11 小时前
【leetcode100】组合总和Ⅳ
数据结构·python·算法·leetcode·动态规划
尤物程序猿12 小时前
【2025面试Java常问八股之redis】zset数据结构的实现,跳表和B+树的对比
数据结构·redis·面试