顺序表的定义
线性表:是具有相同数据类型的n个数据元素的有限序列,每个数据元素所占空间一样大。
顺序表:用顺序存储的方式实现线性表顺序存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
顺序表的实现——静态分配
#define MaxSize 10 //定义最大长度
typedef struct{
ElemType data[MaxSize]; //用静态的“数组”存储数据元素
int length; //顺序表的当前长度
}SqList; //顺序表的类型定义
顺序表的实现——动态分配
#define InitSize 10 //顺序表的初始长度
typedef struct{
ElemType *data; //动态分配的数组的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
}SeqList; //顺序表的类型定义
顺序表的特点
- 随机存取,即可以在O(1)时间内找到第i个元素。
- 存储密度高,每个结点只存储数据元素。
- 扩展容量不方便。
- 插入、删除操作不方便,需要移动大量元素。