002、静态顺序表的插入与删除

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include "string.h"
  4 
  5 #define MAXSIZE    100        //定义顺序表最多存储多少元素
  6 //定义一个静态顺序表结构体
  7 typedef struct
  8 {
  9     int staelem[MAXSIZE];
 10     int length;
 11 }strlist;
 12 //初始化
 13 void staListInit(strlist* L)
 14 {
 15     int i;
 16     memset(L->staelem,0,MAXSIZE);
 17     L->length = 0;
 18     for( i = 0;i < 10;i++)
 19     {
 20         L->staelem[i] = i;
 21     }
 22     L->length = i;
 23 }
 24 //循环打印
 25 void printLis(strlist* L)
 26 {
 27     int i;
 28     for(i = 0;i < L->length ;i++)
 29     {
 30         printf("L->staelem[%d] = %d\n",i,L->staelem[i]);
 31     }
 32     printf("L->length = %d\n",L->length);
 33 }
 34 
 35 /* 
 36  *    插入数据
 37  *    L    静态顺序表结构体
 38  *    n    插入位置的下标
 39  *    data    插入的数据
 40  */
 41 int inserList(strlist* L,int n,int data)
 42 {
 43     int i;
 44     if(L->length >= MAXSIZE || n > L->length ||n < 0 )
 45     {
 46         printf("Array insertion error!\n");
 47         return 0;
 48     }
 49     for(i = L->length-1;i >= n;i--)
 50     {
 51         L->staelem[i+1] = L->staelem[i];
 52     }
 53     L->staelem[n] = data;
 54     L->length += 1;
 55     return 1;
 56 }
 57 /* 
 58  *    删除数据
 59  *    L    静态顺序表结构体
 60  *    n    删除位置的下标
 61  */
 62 int deleteList(strlist* L,int n)
 63 {
 64     int i;
 65     if(n < 0 || n > L->length)
 66     {
 67         printf("Array delete error!\n");
 68         return 0;
 69     }
 70     for(i = n;i < L->length-1;i++)
 71     {
 72         L->staelem[i] = L->staelem[i+1];
 73     }
 74     L->length -= 1;
 75     return 1;
 76 
 77 }
 78 int main()
 79 {
 80     int err;
 81     strlist List1;
 82     /* 初始化 */
 83     staListInit(&List1);
 84     /* 打印数据 */
 85     printLis(&List1);
 86 
 87     /* 插入数据 */
 88     err = inserList(&List1,5,20);
 89     /* 打印数据 */
 90     if(err)
 91         printLis(&List1);
 92 
 93     /* 删除 */
 94     err = deleteList(&List1,5);
 95     /* 打印数据 */
 96     if(err)
 97         printLis(&List1);
 98 
 99     return 0;
100 }

猜你喜欢

转载自www.cnblogs.com/yang-cheng/p/12902386.html