顺序表的基本操作(静态分配内存)

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <stdbool.h>
 4 #define MaxSize 100
 5 typedef struct{
 6     int data[MaxSize];
 7     int length;
 8 }Sqlist;
 9 //初始化
10 bool InitList(Sqlist *L){
11     L->length=0;
12     return true;
13 }
14 //插入
15 bool ListInsert(Sqlist *L,int i,int element){
16     int j;
17     if(i<1 || i>L->length+1)
18         return false;
19     if(L->length>=MaxSize)
20         return false;
21     for(j=L->length;j>=i;j--){
22         L->data[j]=L->data[j-1];
23     }
24     L->data[i-1]=element;
25     L->length++;
26     return true;
27 }
28 //删除
29 bool DelList(Sqlist *L,int i,int *element){
30     int j;
31     if(i<1 || i>L->length)
32         return false;
33     element=L->data[i-1];
34     for(j=i;j<=L->length;j++){
35         L->data[j-1]=L->data[j];
36     }
37     L->length--;
38     return true;
39 }
40 //查找
41 int LocateElem(Sqlist L,int e){
42     int i;
43     for(i=0;i<L.length;i++){
44         if(L.data[i]==e)
45             return i+1;
46     }
47     return 0;
48 }
49 //遍历
50 int travel(Sqlist L){
51     int i;
52     for(i=0;i<L.length;i++){
53         printf("%d",L.data[i]);
54     }
55     return 0;
56 }
57 int main(){
58     int *e;
59     Sqlist L;
60     InitList(&L);
61     ListInsert(&L,1,1);
62      ListInsert(&L,2,1);
63       ListInsert(&L,3,1);
64       DelList(&L,1,&e);
65     travel(L);
66     return 0;
67 }

posted @ 2022-07-04 21:26  梦开始的地方  阅读(50)  评论(0)    收藏  举报