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("溢出\n");
25 if(m<1 || m>l->len+2)
26 printf("错误\n");
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个元素\n");
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个元素\n",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("这个元素不存在\n");
61 else
62 printf("%d\n",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个数的表:\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("\n");
78 /*--------------------------------在m处插入e-------------------------------*/
79 printf("在m处插入e,输入m和e:\n");
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("\n");
85 /*---------------------------------删除第m个元素------------------------------*/
86 printf("删除第m个元素,输入m:\n");
87 scanf("%d",&m);
88 delet(l,m);
89 for(i=0;i<=l->len;i++) //输出
90 printf("%d ",l->a[i]);
91 printf("\n");
92 /*---------------------------------查找e在表中的位置-------------------------------*/
93 printf("查找e在表中的位置,输入e:\n");
94 scanf("%d",&e);
95 locate(l,e);
96 /*----------------------------------取表中第i个元素--------------------------------*/
97 printf("取表中第i个元素,输入i:\n");
98 scanf("%d",&i);
99 get(l,i);
100 return 0;
101 }