1.线性表的定义
是具有相同特性数据元素的一个有限序列。元素个数叫线性表的长度。
线性表是一种简单的数据结构,可以有序,也可以无序。
2.线性表的逻辑特性
一个学生在队头,一个在队尾,除了队头和队尾,其他元素只有一个直接前驱,一个直接后续。
3.线性表的存储结构
1)顺序存储结构(顺序表):把元素按照其逻辑顺序存储。具有 随机访问特性。
2)链式存储结构(链表):每个结点不仅包含所存元素信息,还包含元素之间逻辑关系的信息。不支持随机访问。
4.链表有五种形式
1)单链表(单向)
a.带头结点的单链表(有一个结点,不存储信息)
b.不带头结点的单链表(所有结点都存储信息)
2)双链表(双向)
3)循环单链表
4)循环双链表
5)静态链表
单链表如上图所示的单行车道,只允许车辆往一个方向行驶;
双链表如上图所示的双向车道,车辆既可以从左往右行驶,也可以从右往左行驶;
循环单链表如上图所示的单向环形车道,车辆可沿着一个方向行驶在这条车道上
循环双链表如上图所示的双向环形车道,车辆可以沿着两个方向行驶在这条车道上。
5.顺序表和链表比较【重要】
5.1 基于空间的比较
1)存储分配的方式
顺序表的存储空间是一次性分配的。
链表的存储空间是多次分配的。
2)存储密度(存储密度 = 结点值域所占的存储量 / 结点结构所占的存储总量)
顺序表的存储密度 = 1
链表的存储密度 < 1 (因为结点中有指针域)
5.2 基于时间的比较
1)存储方式
顺序表可以随机存取,也可以顺序存取
链表只能顺序存取
2)插入/删除时移动元素个数
顺序表平均需要移动近一半元素
链表不需要移动元素,只需要修改指针