1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "string.h"
4
5 #define MAXSIZE 100 //定义顺序表最多存储多少元素
6 //定义一个静态顺序表结构体
7 typedef struct
8 {
9 int staelem[MAXSIZE];
10 int length;
11 }strlist;
12 //初始化
13 void staListInit(strlist* L)
14 {
15 int i;
16 memset(L->staelem,0,MAXSIZE);
17 L->length = 0;
18 for( i = 0;i < 10;i++)
19 {
20 L->staelem[i] = i;
21 }
22 L->length = i;
23 }
24 //循环打印
25 void printLis(strlist* L)
26 {
27 int i;
28 for(i = 0;i < L->length ;i++)
29 {
30 printf("L->staelem[%d] = %d\n",i,L->staelem[i]);
31 }
32 printf("L->length = %d\n",L->length);
33 }
34
35 /*
36 * 插入数据
37 * L 静态顺序表结构体
38 * n 插入位置的下标
39 * data 插入的数据
40 */
41 int inserList(strlist* L,int n,int data)
42 {
43 int i;
44 if(L->length >= MAXSIZE || n > L->length ||n < 0 )
45 {
46 printf("Array insertion error!\n");
47 return 0;
48 }
49 for(i = L->length-1;i >= n;i--)
50 {
51 L->staelem[i+1] = L->staelem[i];
52 }
53 L->staelem[n] = data;
54 L->length += 1;
55 return 1;
56 }
57 /*
58 * 删除数据
59 * L 静态顺序表结构体
60 * n 删除位置的下标
61 */
62 int deleteList(strlist* L,int n)
63 {
64 int i;
65 if(n < 0 || n > L->length)
66 {
67 printf("Array delete error!\n");
68 return 0;
69 }
70 for(i = n;i < L->length-1;i++)
71 {
72 L->staelem[i] = L->staelem[i+1];
73 }
74 L->length -= 1;
75 return 1;
76
77 }
78 int main()
79 {
80 int err;
81 strlist List1;
82 /* 初始化 */
83 staListInit(&List1);
84 /* 打印数据 */
85 printLis(&List1);
86
87 /* 插入数据 */
88 err = inserList(&List1,5,20);
89 /* 打印数据 */
90 if(err)
91 printLis(&List1);
92
93 /* 删除 */
94 err = deleteList(&List1,5);
95 /* 打印数据 */
96 if(err)
97 printLis(&List1);
98
99 return 0;
100 }