整个线性表所占用存储空间的大小为:n*sizeof(ElemType)其中,假定线性表的元素类型为ElemType,则每个元素所占用存储空间大小(即字节数)为sizeof(ElemType),n表示线性表的长度16
16 整个线性表所占用存储空间的大小为: n*sizeof(ElemType) 其中,假定线性表的元素类型为 ElemType,则每个元素所占用存储空间大 小(即字节数)为sizeof(ElemType),n表示线 性表的长度
下标位置存储地址线性表存储空间0LOC(A)aia2LOC(A)+sizeof(ElemType)!i-1aiLOC(A)+(i-1)*sizeof(ElemType)!LOC(A)+(n-1)*sizeof(ElemType)n-1anMaxSize-1LOC(A)+(MaxSize-1)*sizeof(ElemType顺序表示意图17
17 0 a 1 LOC(A) 1 a2 LOC(A)+sizeof(ElemType) 下标位置 线性表存储空间 存储地址 ┇ ┇ i-1 ai LOC(A)+(i-1)*sizeof(ElemType) ┇ ┇ n an LOC(A)+(n-1)*sizeof(ElemType) -1 ┇ ┇ MaxSize-1 ┇ LOC(A)+(MaxSize-1)*sizeof(ElemType) 顺序表示意图
在定义一个线性表的顺序存储类型时,需要定义一个数组存储线线表中的所有元素和定义一个整型变量存储线性表的长度假定数组用dataMaxSizel表示,长度整型变量用length表示,并采用结构体类型表示则元素类型为通用类型标识符ElemType的线性表的顺序存储类型可描述如下18
18 在定义一个线性表的顺序存储类型时,需 要定义一个数组存储线线表中的所有元素和 定义一个整型变量存储线性表的长度。 假定数组用data[MaxSize]表示,长度整 型变量用length表示,并采用结构体类型表示, 则元素类型为通用类型标识符ElemType的线 性表的顺序存储类型可描述如下:
typedefstructYElemType data[MaxSize];int length;}SqList;/*顺序表类型*其中,data成员存放元素,length成员存放线性表的实际长度!U19
19 typedef struct { ElemType data[MaxSize]; int length; } SqList; /*顺序表类型*/ 其中,data成员存放元素,length成员存 放线性表的实际长度
2顺序表基本运算的实现建立顺序表其方法是将给定的含有n个元素的数组的每个元素依次放入到顺序表中,并将n赋给顺序表的长度成员。算法如下:void CreateList(SqList *&L,ElemType all,int n/*建立顺序表*inti;L=(SqList *)malloc(sizeof(SqList);for (i=0;i<n;i++)L->data[i]=a[i];L->length=n;20
20 建立顺序表 其方法是将给定的含有n个元素的数组的 每个元素依次放入到顺序表中,并将n赋给顺 序表的长度成员。算法如下: void CreateList(SqList *&L,ElemType a[],int n) /*建立顺序表*/ { int i; L=(SqList *)malloc(sizeof(SqList)); for (i=0;i<n;i++) L->data[i]=a[i]; L->length=n; } 2 顺序表基本运算的实现