#include
#include
#include
#define MaxSize 15
//代码注释详见另一篇使用malloc()函数动态分配内存空间的博文
typedef struct {
int data[MaxSize];
int length;
}SeqList;
int InitList(SeqList *L){//由于在定义结构体SeqList时使用了普通变量所以无需编写DestroyList()函数
L->length=0;
printf("该顺序表已被创建n");
return 1;
}
void PrintList(SeqList L){
for(int i=0;i
return(L.length);
}
int ListInsert(SeqList *L,int i, int e){
if(i<1||i>L->length+1)
return 0;
if(L->length>=MaxSize)
return 0;
for(int j=L->length;j>=i;j--){
L->data[j]=L->data[j-1];
}
L->data[i-1]=e;
L->length++;
printf("该顺序表成功在:%d处插入元素:%dn",i,e);
return 1;
}
int ListDelete(SeqList *L,int i,int *e){
if(i<1||i>L->length)
return 0;
(*e)=L->data[i-1];
for(int j=i;jlength;j++)
L->data[j-1]=L->data[j];
L->length--;
printf("该顺序表成功在:%d处删除元素:%dn",i,*e);
return 1;
}
int GetElem(SeqList L,int i){
if(i<1||i>length(L))
return 0;
return(L.data[i-1]);
}
int LocateElem(SeqList L,int e){
if(L.length==0) return 0;
int i=0;
for(;i
SeqList L;
int discard;
int desert;
InitList(&L);
printf("n");
ListInsert(&L,1,9);
printf("n");
ListInsert(&L,1,9);
printf("n");
ListInsert(&L,length(L)+1,5);
printf("n");
ListInsert(&L,length(L)+1,2);
printf("n");
ListInsert(&L,length(L)+1,7);
printf("n");
ListInsert(&L,length(L)+1,7);
printf("n");
PrintList(L);
printf("n");
ListDelete(&L,1,&discard);
printf("n");
ListDelete(&L,length(L),&desert);
printf("n");
PrintList(L);
printf("元素5在该顺序表中的位置为%dnn",LocateElem(L,5));
printf("删除过的元素为%d,%dnn",desert,discard);
return 0;
}