数据结构第二章 ——线性表之顺序表
基本
Status SqInit(Sqlist &L){
L.elem=(ElemType *)malloc (List_Init_Size*sizeof(ElemType));
if (!L.elem)
exit(OVERFLOW);
else
printf("创建成功!\n");
L.length=0;
L.listsize=List_Init_Size;
}
Status SqEmpty(Sqlist L){
if (L.length==0)
printf("空表\n");
else
printf("不是空表\n");
return OK;
}
Status SqClear(Sqlist &L){
if(!L.elem)
exit(OVERFLOW);
L.length=0;
printf("重置成功!\n");
return OK;
}
Status SqLength(Sqlist L){
if(!L.elem)
exit(OVERFLOW);
return L.length;
}
void SqDisplay(Sqlist L){
int i;
for (i=0;i<L.length;i++) {
printf("%5d",L.elem[i]);
}
printf("\n");
}
Status SqDestroy(Sqlist &L){
if (L.elem) {
free(L.elem);
L.elem = NULL;
}
L.length = 0;
L.listsize = 0;
}
Status SqGetElem(Sqlist L,int pos,ElemType e){
e = L.elem[pos-1];
return e;
}
Status SqLocateElem(Sqlist L,ElemType e){
int i;
int number =0;
int pos;
for (i=0;i<L.length;i++){
if (L.elem[i]==e){
pos = i+1;
number++;
}
}
if(number == 0)
pos =number;
return pos;
}
插入
Status SqInsert(Sqlist &L,int pos,ElemType e){
int i;
if(pos<1 || pos>L.length+1)
return ERROR;
if(L.length>=L.listsize)
{
L.elem=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(L.elem==NULL)
{
printf("对不起,申请空间失败,程序将退出\n");
exit(OVERFLOW);
}
L.listsize+=LISTINCREMENT;
}
for