实现线性表的增加删除定位等功能。(编译执行环境vc6.0,因为目标院校上机考是用这个版本的)
1 #include<stdio.h>
2 #include<malloc.h>
3 #define Maxsize 100
4
5 typedef struct{
6 int array[Maxsize];
7 int length;
8 }SQlist;
9
10 int findElem(SQlist L,int x)
11 {
12 int i=0;
13 for(i; i<L.length;++i)
14 {
15 if(x<L.array[i])
16 {
17 return i;
18 }
19 }
20
21 return i;
22 }
23
24 void insertElem(SQlist &L,int x)
25 {
26 int p,i;
27
28 p=findElem(L,x);
29
30 for(i=L.length-1;i>=p;--i)
31 {
32 L.array[i+1]=L.array[i];
33 }
34
35 L.array[p]=x;
36 ++(L.length);
37 }
38
39 int deleteElem(SQlist &L,int p,int &e)
40 {
41 int i;
42 if(p<0 || p>L.length-1)
43 return 0;
44 p=p-1;
45 e=L.array[p];
46
47 for(i=p; i<L.length ;i++)
48 {
49 L.array[i]=L.array[i+1];
50
51 }
52 --L.length;
53 return 1;
54
55 }
56 void main()
57 {
58 SQlist *s=(SQlist*)malloc(sizeof(SQlist));
59
60 for(int i=0;i<6;i++)
61 {
62 s->array[i]=(i+3);
63 printf("%d ",s->array[i]);
64 }
65 printf("\n");
66 s->length=6;
67 insertElem(*s,15);
68
69
70 printf("增加后字符串为:");
71 for(int j=0;j<s->length;j++)
72 {
73 printf("%d ",s->array[j]);
74 }
75 printf("\n");
76 printf("增加后字符串长度为%d\n",s->length);
77 int n;
78 deleteElem(*s,2,n);
79
80 printf("%d\n",n);
81 for(int k=0;k<s->length;k++)
82 {
83 printf("%d ",s->array[k]);
84 }
85
86 }