#include<stdio.h>
#include<stdlib.h>
#define maxSize 30
typedef int DataType;
typedef struct { //包含结构体
DataType data[maxSize];
int n;
}SeqList;
int main(){
SeqList L;
int i,k,l,n1,n2,x,j=0;
printf("请输入数据长度:");
scanf("%d",&L.n);
for(i=0;i<L.n;i++){ //依次输入data
printf("请输入第%d个数据:",i+1);
scanf("%d",&L.data[i]);
}
printf("包含数据:");
for(i=0;i<L.n;i++){ //输出data
printf("%d ",L.data[i]);
}
printf("\n");
printf("顺序表L的长度=%d\n",L.n); // 求线性表长度运算
enter:
printf("请输入逻辑顺序:");
scanf("%d",&n2);
if(n2<0||n2>L.n){ //直到输入正确
printf("不在数据范围之内");
goto enter;
}
printf("第%d个位置的元素是%d\n",n2,L.data[n2-1]);
printf("请输入要查找的元素:");
scanf("%d",&n1); //获得n1
for(i=0;i<L.n;i++){ //依次比较n1在与data中的数
if(L.data[i]==n1){
printf("元素%d是第%d个元素\n",n1,i+1);
j++;
}
}
if(j==0){
printf("n1在data中不从在\n");
}
insert:
printf("要在第几个数据插入:");
scanf("%d",&k);
if(k<1||k>L.n) { //直到输入正确
printf("不在数据范围内\n");
goto insert;
}
printf("要插入的元素");
scanf("%d",&x);
L.n++; //数据长度+1
for(i=L.n-1;i>=0;i--){ //插入数据x
L.data[i+1]=L.data[i];
if((i+1)==k){
L.data[i]=x;
break;
}
}
for(i=0;i<L.n;i++){ //输出处理后的结果
printf("%d ",L.data[i]);
}
del:
printf("要删除第几个数据:");
scanf("%d",&l);
if(l<1||l>L.n) {
printf("不在数据范围内\n");
goto del;
}
for(i=l;i<L.n;i++){ //删除第l个数据
L.data[i-1]=L.data[i];
}
L.n--; //数据长度-1
for(i=0;i<L.n;i++){ //输出处理后的结果
printf("%d ",L.data[i]);
}
return 0;
}
原文:https://www.cnblogs.com/BKKITO/p/10652412.html