单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以节点来表示的,每个节点的构成:data域(数据元素)+next域(下一个结点的存储位置) 单链表与数组相比的最大差别是:单链表的数据元素存放在内存空间的地址是不连续的,而数组的数据元素存放的地址在内存空间中是连续的,这也是为什么根据索引无法像数组那样直接就能查询到数据元素。 对于单链表的这种特殊结构,我们可以用“火车”来类比,假设一节车厢可以存储一个数据元素,当数据不够时,就新增一节车厢挂载在火车尾。在遍历时,只能从头部车厢开始遍历,依次走到尾部(即单向遍历,默认从前向后) ![[Pasted image 20221207183805 1.png]] 总结:1.只能在队尾添加元素,并且只能从头部开始遍历 2.在内存中的地址是随机非连续的 3.每个节点都必须记录下个节点的存储位置 难点:1.如何查找上一个节点,需要从头开始遍历,下标-1 2. 如何插入节点,需要找到找到上一个节点,将上一个节点的NEXT节点作为待插入节点的NEXT节点,然后将待插入节点作为上一个节点新的NEXT节点