#include <stdio.h>
#define MaxSize 5
typedef struct
{
int data[MaxSize];
int length;
}SqList;
//初始化
int InitList(SqList *L){
for(int i=0;i<MaxSize;i++)
L->data[i]=0;
L->length=0;
printf("初始化成功\n");
return 0;
}
//建表,并且输入表内的值
SqList Creat(){
printf("请输入表内元素(每个数字按空格相隔,以输入-1为终止条件):");
SqList L;
InitList(&L);
int e;
int i=0;
scanf("%d",&e);
while(e!=-1){
L.data[i]=e;
scanf("%d",&e);
i++;
if(i>=MaxSize){
printf("超出数组容量");
break;
}
L.length=i;
}
printf("表已经输好了\n");
return L;
}
//在L中第i个位置之前查人新的数据元素e,L的长度加1
int ListInsert_Sq(SqList *L,int i,int e){
if(i<0||i>L->length){
printf("超出数组容量");
return 0;
}else{
for(int j=L->length;j>=i;j--){
L->data[j]=L->data[j-1];
}
L->data[i-1]=e;
L->length++;
}
return 0;
}
//打印表
void show(SqList L){
for(int i=0;i<L.length;i++){
printf("%d ",L.data[i]);
}
printf("\n ");
}
//删除L的第i个数据元素,并用e返回其值,L的长度减一
int ListDelete_Sq(SqList *L,int i,int &e){
if(i<0||i>L->length-1){
printf("超出数组容量");
}else{
e=L->data[i-1];
for(int j=i;j<L->length;j++){
L->data[j-1]=L->data[j];
}
L->length--;
}
return 0;
}
/*int GetElem_Sq(Sqlist L,int i,int *e); //用e返回第i个元素的值
int ListEmpty(Sqlist L); //查看表是否为空函数
void LocateElem(Sqlist L); //按值查找函数*/
int main(){
SqList L=Creat();
show(L);
ListInsert_Sq(&L,1,9);
show(L);
int e=-1;
ListDelete_Sq(&L,1,e);
show(L);
printf("%d",e);
return 0;
}