数据结构
链表
- 定义:head current current.next ,只已知第一节点,通过每个节点里存储下一节点地址的指针,形成线性数据存储关系,不按顺序的存储降低了数据插入/删除的时间复杂度。逻辑上相邻,物理上不相邻。
- 存储结构:共用存储空间/独立存储空间
- 特性:善于数据的增删改查,无序存储的数据检索效率比较低
共用存储空间
- 节点和其他数据共用一个储存空间
- 优点:无需提前分配空间,可存储无限数据
- 缺点: 由于存储比较分散,调试比较困难
独立存储空间
- 一个链表或者多个链表使用独立的储存空间
- 优点:具有唯一的编号,方便调试
- 缺点:内存无法动态分配
- 弥补缺陷:数组模拟链表
用数组实现,在其上加一层块状链表
常用分类
- 单向链表
每个节点(current)只存储下一个节点地址的指针 //current.next
- 双向链表
每个节点(current)不仅存储下一个节点地址的指针,还存储上一个节点地址的指针 //current.next current.previous head(第一个节点) tail(最后一个节点)
- 循环链表
在双向链表/单向链表的基础上,链表的第一个节点的上一个节点为链表的最后一个节点
- 块状链表 //储存的是:数据的顺序表,每一个节点储存的是数据的顺序表,是块状的