1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <stdbool.h> 4 //#define MaxSize 100 5 /*静态分配*/ 6 /*typedef struct{ 7 int data[MaxSize]; 8 int length; 9 }Sqlist; 10 //初始化 11 bool InitList(Sqlist *L){ 12 L->length=0; 13 return true; 14 }*/ 15 /*动态分配*/ 16 #define InitSize 100 17 typedef struct{ 18 int *data; 19 int MaxSize; 20 int length; 21 }Sqlist; 22 //初始化 23 bool InitList(Sqlist *L){ 24 L->data=(int*)malloc(sizeof(int)*InitSize); 25 if(!L->data) return false; 26 L->MaxSize=InitSize; 27 L->length=0; 28 return true; 29 } 30 //插入 31 bool ListInsert(Sqlist *L,int i,int element){ 32 int j; 33 if(i<1 || i>L->length+1) 34 return false; 35 if(L->length>=L->MaxSize) 36 L->data=(int*)realloc(L->data,sizeof(int)*(InitSize+100)); 37 for(j=L->length;j>=i;j--){ 38 L->data[j]=L->data[j-1]; 39 } 40 L->data[i-1]=element; 41 L->length++; 42 return true; 43 } 44 //删除 45 bool DelList(Sqlist *L,int i,int *element){ 46 int j; 47 if(i<1 || i>L->length) 48 return false; 49 element=L->data[i-1]; 50 for(j=i;j<=L->length;j++){ 51 L->data[j-1]=L->data[j]; 52 } 53 L->length--; 54 return true; 55 } 56 //查找 57 int LocateElem(Sqlist L,int e){ 58 int i; 59 for(i=0;i<L.length;i++){ 60 if(L.data[i]==e) 61 return i+1; 62 } 63 return 0; 64 } 65 //遍历 66 int travel(Sqlist L){ 67 int i; 68 for(i=0;i<L.length;i++){ 69 printf("%d",L.data[i]); 70 } 71 return 0; 72 } 73 int main(){ 74 int *e; 75 Sqlist L; 76 InitList(&L); 77 ListInsert(&L,1,1); 78 ListInsert(&L,2,1); 79 ListInsert(&L,3,1); 80 DelList(&L,1,&e); 81 ListInsert(&L,3,8); 82 travel(L); 83 return 0; 84 }
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/271609.html