顺序表的建立,查找,删除,插入,输出【转】

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 //来自夏天里的向日葵
  4 #define  maxsize   1111
  5 
  6 typedef struct
  7 {
  8     int a[1111];
  9     int len;
 10 }S;
 11 
 12 S *init()
 13 {
 14     S *l;
 15     l=malloc(sizeof(S));
 16     l->len=-1;
 17     return l;
 18 }
 19 
 20 int insert(S *l,int m,int e)
 21 {
 22     int i;
 23     if(l->len==maxsize)
 24         printf("溢出
");
 25     if(m<1 || m>l->len+2)
 26         printf("错误
");
 27     for(i=l->len;i>=m-1;i--)
 28         l->a[i+1]=l->a[i];
 29     l->a[m-1]=e;
 30     l->len++;
 31     return 0;
 32 }
 33 
 34 int delet(S *l,int m)
 35 {
 36     int i;
 37     if(m<1 || m>l->len+1)
 38         printf("不存在第i个元素
");
 39     for(i=m;i<=l->len;i++)
 40         l->a[i-1]=l->a[i];
 41     l->len--;
 42     return 0;
 43 }
 44 
 45 int locate(S *l,int e)
 46 {
 47     int i=0;
 48     while(i<=l->len && l->a[i]!=e)
 49         i++;
 50     if(i>l->len)
 51         printf("不存在");
 52     else 
 53         printf("是第%d个元素
",i+1);
 54     return 0;
 55 }
 56 
 57 int get(S *l,int i)
 58 {
 59     if(i<1 || i>l->len+1)
 60         printf("这个元素不存在
");
 61     else 
 62         printf("%d
",l->a[i-1]);
 63     return 0;
 64 }
 65 int main()
 66 {  
 67     S *l;
 68     int n,i,m,e;
 69     l=init();
 70     printf("输入一个n和一个n个数的表:
");
 71     scanf("%d",&n);      //最先的顺序表中有n个元素
 72     for(i=0;i<n;i++)
 73         scanf("%d",&l->a[i]);            //输入n 个元素
 74     l->len=n-1;
 75     for(i=0;i<=l->len;i++)
 76         printf("%d ",l->a[i]);               //输出
 77     printf("
");
 78 /*--------------------------------在m处插入e-------------------------------*/
 79     printf("在m处插入e,输入m和e:
");
 80     scanf("%d %d",&m,&e);     
 81     insert(l,m,e);
 82     for(i=0;i<=l->len;i++)
 83         printf("%d ",l->a[i]);     //输出
 84     printf("
");
 85 /*---------------------------------删除第m个元素------------------------------*/
 86     printf("删除第m个元素,输入m:
");
 87     scanf("%d",&m);
 88     delet(l,m);
 89     for(i=0;i<=l->len;i++)     //输出
 90         printf("%d ",l->a[i]);
 91     printf("
");
 92 /*---------------------------------查找e在表中的位置-------------------------------*/
 93     printf("查找e在表中的位置,输入e:
");
 94     scanf("%d",&e); 
 95     locate(l,e);
 96 /*----------------------------------取表中第i个元素--------------------------------*/
 97     printf("取表中第i个元素,输入i:
");
 98     scanf("%d",&i);
 99     get(l,i);
100     return 0;
101 }
原文地址:https://www.cnblogs.com/hanyue-AC/p/3608935.html