3.4 线性表的顺序存储结构
3.4.1 顺序存储定义
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
线性表(a1,a2,a3,....,an)的顺序存储示意图如下:
a1 | a2 | ... | ai-1 | ai | ... | an |
3.4.2 顺序存储的方式
线性表的顺序存储结构,说白了,就是---在内存中找了块地儿,通过占位的形式,把一定的内存空间给占了,然后把相同数据类型的数据元素一次存放在这块空地中。
来看下线性表的顺序存储的结构代码:
#define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}SqList;
这里,我们发现描述的顺序存储结构需要三个属性:
1.存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置。
2.线性表的最大存储容量:数组长度MAXSIZE;
3.线性表的当前长度:length
3.4.3 数据长度与线性长度的区别:
数组的长度: 存放线性表的存储空间的长度,存储分配后这个量是一般不变的。
线性表的长度:线性表中数据元素的个数,随着线性表插入和删除操作的进行,而改变。
任何时刻,线性表的长度< = 数组的长度