顺序表【数据结构-朱战立】

  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 }

 

posted @ 2018-08-14 20:51  蓝莓派Alex  阅读(276)  评论(0编辑  收藏  举报