1、顺序存储的定义
将逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。
例:
线性表中的第一个元素a1的存储位置,称为线性表的起始地址或基地址。
如图所示,依次存储,地址连续-----中间没有空出的存储单元。
所以,下面的存储结构就不是一个线性表的顺序存储结构。
线性表的顺序存储结构占用一片连续的存储空间。
优点: 知道某个元素的存储位置就可以计算其他元素的存储位置。
例:
如果每个元素占用8个存储单元,ai的存储位置是2000,则ai+1的存储位置是多少?
ai占用的存储位置是2000~2007,
那么ai+1的存储位置为2008。
由此我们得出,假设线性表的每个元素占用L个存储单元,所有数据元素的存储位置均可由第一个数据元素的存储位置得到:LOC(ai)=LOC(a1)+(i-1)*L
2、顺序存储结构的实现
define List_Size 100 //线性表的最大长度
struct SqList
{
Type *elem;//定义任意类型的数组
int length;//当前长度
}list;
list.elem=new Type[MaxSize];//为数组分配空间
或者:
define List_Size 100 //线性表的最大长度
struct SqList
{
Type elem[List_Size];//定义任意类型的数组
int length;//当前长度
};
我们可以通过此模板来定义一个线性表进行操作,实现线性表长的动态性。