在程序设计语言中一维数组在内存中占用的存储空间就是一组连续的存储区域因此用一维数组来表示顺序表的数据存储区域是再合适不过的考虑到线性表的运算有插入删除等运算(即表长是不断变化的)因此数组的容量需足够大当然也可考虑在实际运行中动态分配内存和动态增加内存本章中暂不作考虑数组的动态分配问题当表长超过数组的容量时视为溢出
顺序表可用一维数组data[MAXSIZE]表示其中MAXSIZE是一个根据实际问题定义的足够大的整数用一个变量 length 记录当前线性表中元素的个数即线性表的长度同时由于顺序表中的数据从 data[] 开始依次顺序存放因此length表示最后一个元素的下标始终指向线性表中最后一个元素当表空时 length =我们用DataType表示线性表中数据元素的类型这种存储思想在C语言中的定义如下
#define MAXSIZE
DataType data[MAXSIZE]; /*DataType可以是整型实型等数据类型*/
int length;
表长为length数据元素分别存放在data[]到data[length ]中MAXSIZE为最大使用内存空间length≤MAXSIZE
我们通常将 data 和 length 封装成一个结构作为顺序表的类型
typedef struct node {
DataType data[MAXSIZE];
int length;
} SeqList;
定义一个顺序表SeqList L;
[] [] []