#include #include #include #define max 100 int s[max];//顺序表 void creates(int *ss,int length)//初始化顺序表 { int value; printf("请输入%d个数:\n",length); for(int i = 0; i < length; i++) { scanf("%d",&value); ss[i] = value; } } int searchdex(int *ss, int length, int dex)//查找下标dex个元素 不合法返回-1 { if(dex < 0 || dex >= length) { printf("查找的下标不合法!"); return -1; } else { return ss[dex]; } } int searchnum(int *str,int length,int num)//返回下标 如果没有查到返回-1 { int cnt = 0; while(str[cnt] != num && cnt < length) { cnt++; } if(cnt == length) return -1; else return cnt; } int insert(int *str, int *length,int dex,int num)//擦插入一个元素 { int cnt ; if(dex > *length || dex < 0) return -1; else { for(cnt = *length; cnt > dex ; dex--) str[cnt] = str[cnt-1]; str[dex] = num; } *length = *length + 1; return 1; } int del(int *str, int *length)//删除一个数 删除一个数是x的元素 或者是下标为dex的数 { int ch; printf("请输入删除的模式: 1 删除一个下标 2 删除一个数 "); scanf("%d",&ch); switch(ch) { case 1: { printf("请输入删除的下标:"); int dex; scanf("%d",&dex); for(int i = dex; i < *length; i++) str[i] = str[i+1]; *length = *length +1; return 1; } case 2: { printf("请输入删除的数:"); int num; scanf("%d",&num); int dex = searchnum(str,*length, num); for(int i = dex; i < *length; i++) str[i] = str[i+1]; *length = *length +1; return 1; } } return 1; } void show(int s[], int length )//输出数组 { printf("数组里的元素为:"); for(int i = 0 ; i < length-1; i++) printf("%d->",s[i]); printf("%d\n",s[length-1]); scanf("\n"); } int main() { int length; printf("输入线性表的长度:"); scanf("%d:",&length); creates(s,length); show(s,length); return 0; }