线性表的顺序储存结构(向量 )(一)

来源:互联网 发布:网络诈骗怎么报警呢 编辑:程序博客网 时间:2024/05/17 01:31

线性表的顺序储存(向量存储):指的是用一组地址连续的存储单元一次存储线性表的数据元素。

由于线性表的所有数据元素均属同一类型,所以每个元素在存储器中占用的空间大小相同。假设向量的第一个元素存放的地址用LOC(A1)表示,每个元素占用的空间大小为L个字节,则元素Ai的存放地址为:

LOC(Ai)=LOC(A1)+L X (i-1)

在高级语言环境中,通常利用数组来表示线性表的顺序存储结构。,这是因为数组中所有元素的数据类型是相同的,元素间的地址是连续的。

为更好体现信息隐蔽原则及数据抽象原则,在这里把数组和线性表的长度封装在一个结构体中。

//------------------------线性表的动态分配顺序存储------------------------------------------------------------------

#define LIST_INT_SIZE 100//线性表存储空间的初始分配量#define LIST_INT_SIZE 10//线性表存储空间的分配增量typedef struct{ElemType * elem //存储空间地址int length //当前长度int listsize //当前分配的存储容量,以sizeof(ElemType)为单位}Sqlist

说明:数据指针elem表示线性表的基地址,length表示线性表的当前长度,listsize表示顺序表当前分配的存储空间大小。一旦因出入元素而空间不足时,可以进行在分配。

向量中基本运算的实现。

1、初始化,长度为零,表中没有数据元素。

SeqList InitList_Seq(){//构造一个空的线性表LSeqList L;//定义一个顺序表L.length=0;//顺序表的长度为0return L;//返回空顺序表}//InitList_Seq