1 #include <stdio.h> 2 #define MaxSzie 100 3 4 typedef int DataType; 5 typedef struct 6 { 7 DataType list[MaxSzie]; 8 int size; 9 }SeqList; 10 11 void ListInit(SeqList *L) 12 { 13 L->size = 0; 14 } 15 16 int ListLength(SeqList L) 17 { 18 return L.size; 19 } 20 21 int ListInsert(SeqList *L, int i, DataType x) 22 { 23 int j=0; 24 25 if (i>=MaxSzie) 26 { 27 printf("error!"); 28 return 0; 29 } 30 else if (i<0||i>L->size) 31 { 32 printf("error!"); 33 return 0; 34 } 35 else 36 { 37 while (j<i) 38 { 39 j++; 40 } 41 if (j!=i) 42 { 43 printf("error!"); 44 return 0; 45 } 46 else 47 { 48 for ( j; j < L->size; j++) 49 { 50 L->list[j + 1] = L->list[j]; 51 } 52 L->list[j] = x; 53 L->size++; 54 return 1; 55 } 56 } 57 } 58 59 int ListDelete(SeqList *L, int i, DataType *x) 60 { 61 int j = 0; 62 63 if (i>=MaxSzie) 64 { 65 printf("error!"); 66 return 0; 67 } 68 else if (i<0 || i>L->size) 69 { 70 printf("error!"); 71 return 0; 72 } 73 else 74 { 75 while (j < i) 76 { 77 j++; 78 } 79 if (j != i) 80 { 81 printf("error!"); 82 return 0; 83 } 84 else 85 { 86 *x = L->list[j]; 87 for (j; j < L->size; j++) 88 { 89 L->list[j] = L->list[j + 1]; 90 } 91 L->size--; 92 return 1; 93 } 94 } 95 } 96 97 int ListGet(SeqList *L, int i, DataType *x) 98 { 99 if (i<0||i>L->size-1) 100 { 101 printf("error!"); 102 return 0; 103 } 104 else 105 { 106 *x = L->list[i]; 107 return 1; 108 } 109 } 110 //主函数 111 int main() 112 { 113 SeqList mylist; 114 int i, j,x; 115 116 ListInit(&mylist); 117 for ( i = 0; i < 10; i++) 118 { 119 if (ListInsert(&mylist, i, i + 1)==0) 120 { 121 printf("error!"); 122 } 123 } 124 if (ListDelete(&mylist,4,&x)==0) 125 { 126 printf("error!"); 127 128 } 129 else 130 { 131 printf("Delete Number>>>%d\n", x); 132 } 133 for ( j = 0; j <ListLength(mylist); j++) 134 { 135 if (ListGet(&mylist,j,&x)==0) 136 { 137 printf("error!"); 138 } 139 else 140 { 141 printf("%d ",x); 142 } 143 } 144 getchar(); 145 return 0; 146 }