1.定义:
线性表是n个数据元素的有限序列。数据元素性质相同,物理存储位置相邻;
Loc(ai) = Loc(a1)+(i-1)*l
2.操作
(1)定义线性表:
#define LIST_INIT_SIZE 100 //初始化存储空间大小
#define INCREMENT 10 //分配存储空间增量
typedef struct{
ElemType *elem;//存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量
}SqList;
(2)初始化线性表:
Status Init_List_Sq(SqList &L){
//构造一个空的线性表
L.elem = (ElemType *) malloc(INIT_LIST_SIZE *sizeof(ElemType));
if(!L.elem){
exit(OVERFLOW);
}
L.length=0;
L.size = INIT_LIST_SIZE;
return OK;
}
(3)线性表插入操作:
Status ListInsert_Sq(SqList &L,int i,ElemType e){
//检查插入位置合法性
if(i<1 || i>L.length+1){
return error;
}
if(L.length>=L.size){
newBase =(ElemType *) remalloc(L.elem,(L.size+INCREMENT)*sizeof(Elemtype));
if(!newBase){
exit(OVERFLOW);
}
L.elem = newBase;
L.size += INCREMENT;
}
}