1 #include <stdio.h> 2 #include <stdlib.h> 3 //来自夏天里的向日葵 4 #define maxsize 1111 5 6 typedef struct 7 { 8 int a[1111]; 9 int len; 10 }S; 11 12 S *init() 13 { 14 S *l; 15 l=malloc(sizeof(S)); 16 l->len=-1; 17 return l; 18 } 19 20 int insert(S *l,int m,int e) 21 { 22 int i; 23 if(l->len==maxsize) 24 printf("溢出 "); 25 if(m<1 || m>l->len+2) 26 printf("错误 "); 27 for(i=l->len;i>=m-1;i--) 28 l->a[i+1]=l->a[i]; 29 l->a[m-1]=e; 30 l->len++; 31 return 0; 32 } 33 34 int delet(S *l,int m) 35 { 36 int i; 37 if(m<1 || m>l->len+1) 38 printf("不存在第i个元素 "); 39 for(i=m;i<=l->len;i++) 40 l->a[i-1]=l->a[i]; 41 l->len--; 42 return 0; 43 } 44 45 int locate(S *l,int e) 46 { 47 int i=0; 48 while(i<=l->len && l->a[i]!=e) 49 i++; 50 if(i>l->len) 51 printf("不存在"); 52 else 53 printf("是第%d个元素 ",i+1); 54 return 0; 55 } 56 57 int get(S *l,int i) 58 { 59 if(i<1 || i>l->len+1) 60 printf("这个元素不存在 "); 61 else 62 printf("%d ",l->a[i-1]); 63 return 0; 64 } 65 int main() 66 { 67 S *l; 68 int n,i,m,e; 69 l=init(); 70 printf("输入一个n和一个n个数的表: "); 71 scanf("%d",&n); //最先的顺序表中有n个元素 72 for(i=0;i<n;i++) 73 scanf("%d",&l->a[i]); //输入n 个元素 74 l->len=n-1; 75 for(i=0;i<=l->len;i++) 76 printf("%d ",l->a[i]); //输出 77 printf(" "); 78 /*--------------------------------在m处插入e-------------------------------*/ 79 printf("在m处插入e,输入m和e: "); 80 scanf("%d %d",&m,&e); 81 insert(l,m,e); 82 for(i=0;i<=l->len;i++) 83 printf("%d ",l->a[i]); //输出 84 printf(" "); 85 /*---------------------------------删除第m个元素------------------------------*/ 86 printf("删除第m个元素,输入m: "); 87 scanf("%d",&m); 88 delet(l,m); 89 for(i=0;i<=l->len;i++) //输出 90 printf("%d ",l->a[i]); 91 printf(" "); 92 /*---------------------------------查找e在表中的位置-------------------------------*/ 93 printf("查找e在表中的位置,输入e: "); 94 scanf("%d",&e); 95 locate(l,e); 96 /*----------------------------------取表中第i个元素--------------------------------*/ 97 printf("取表中第i个元素,输入i: "); 98 scanf("%d",&i); 99 get(l,i); 100 return 0; 101 }