- #include<stdio.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
int t[MaxSize];
int length;
}sqlist;
int InterList(sqlist*L,int i,int x ) {
int j;
if (i< 0 || i> L->length+1||L->length==MaxSize) //
return (0);
i--;//将顺序表逻辑序号转化为物理序号
for( j=L->length;j >i; j--)//i指插入点
L->t[j] = L->t[j - 1];//将数据t[i]及后面的元素后移一个位置
L->t[i]=x;//插入x
L->length++;//顺序表的长度增1
return 1;
}
int DeleteElem(sqlist* L,int i) {
if (i< 0|| i>L->length + 1||L->length==MaxSize)
return (0);
int j;
i--;//把i逻辑顺序换算成物理顺序
for (j = i; j < L->length; i++){
L->t[j] = L->t[j + 1];
}
L->length--;
return 1;
}
int main() {
int b, c, k = 0;
int d;//==插入点
sqlist a;
char Y;
int z = 1;
while (z)
{
printf("输出元素否:y/n\n");
scanf_s("%c", &Y);
getchar();
if (Y == 'y') {
printf("输入元素%d\n", k + 1);
scanf_s("%d", &a.t[k]);
k++;
getchar();
}
else
{
z = 0;
a.length = k;
}
}
printf("请输入插入前元素:\n");
for (k=0;k<a.length;k++)
{
printf("%d\t", a.t[k]);
}
printf("请输入插入的位置\n");
scanf_s("%d", &d);
printf("请输入插入元素\n");
scanf_s("%d",&b);
c = InterList(&a,d,b);
if (c==0)
{
printf("error!\n");
}
else
{ printf("请输入插入后的元素\n");
for (k = 0; k < a.length; k++) {
printf("%d\t",a.t[k]);
}
}
printf("请输入删除位置\n");
scanf_s("%d", &d);
c= DeleteElem(&a, d);
if (c==0)
{
printf("error!");
}
else
{
printf("请输入删除元素\n");
for (size_t k = 0; k <a.length; k++)
{
printf(" %d\t", a.t[k]);
}
}
return 0;
}
```