为了建立一个线性表,要在内存中找一块地,于是这块地的第一个位置就非常关键,它是存储空间的起始位置。

    线性表中,我们估算这个线性表的最大存储容量,建立一个数组,数组的长度就是这个最大存储容量。

    同样的,我们已经有了起始的位置,也有了最大的容量,于是我们可以在里面增加数据了。随着数据的插入,我们线性表的长度开始变大,不过线性表的当前长度不能超过存储容量,即数组的长度。

    来看线性表的顺序存储的结构代码。

    1. /*存储空间初始分配量 */
    2. #define MAXSIZE 20
    3. /* ElemType类型根据实际情况而定,这里假设为int */
    4. typedef int ElemType;
    5. typedef struct {
    6. /* 数组存储数据元素,最大值为MAXSIZE */
    7. ElemType data[MAXSIZE];
    8. /* 线性表当前长度 */
    9. int length;
    10. } SqList;

    这里,我们就发现描述顺序存储结构需要三个属性:

    • 存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置。
    • 线性表的最大存储容量:数组长度MaxSize。
    • 线性表的当前长度:length。