线性表的基本操作

  • 2019 年 10 月 5 日
  • 筆記

实现线性表的增加删除定位等功能。(编译执行环境vc6.0,因为目标院校上机考是用这个版本的)

 1 #include<stdio.h>   2 #include<malloc.h>   3 #define Maxsize 100   4   5 typedef struct{   6     int array[Maxsize];   7     int length;   8 }SQlist;   9  10 int findElem(SQlist L,int x)  11 {  12     int i=0;  13     for(i; i<L.length;++i)  14     {  15         if(x<L.array[i])  16         {  17             return i;  18         }  19     }  20  21     return i;  22 }  23  24 void insertElem(SQlist &L,int x)  25 {  26     int p,i;  27  28     p=findElem(L,x);  29  30     for(i=L.length-1;i>=p;--i)  31     {  32         L.array[i+1]=L.array[i];  33     }  34  35     L.array[p]=x;  36     ++(L.length);  37 }  38  39 int deleteElem(SQlist &L,int p,int &e)  40 {  41     int i;  42     if(p<0 || p>L.length-1)  43         return 0;  44     p=p-1;  45     e=L.array[p];  46  47     for(i=p; i<L.length ;i++)  48     {  49         L.array[i]=L.array[i+1];  50  51     }  52     --L.length;  53     return 1;  54  55 }  56 void main()  57 {  58     SQlist *s=(SQlist*)malloc(sizeof(SQlist));  59  60     for(int i=0;i<6;i++)  61     {  62         s->array[i]=(i+3);  63         printf("%d  ",s->array[i]);  64     }  65     printf("n");  66     s->length=6;  67     insertElem(*s,15);  68  69  70     printf("增加后字符串为:");  71     for(int j=0;j<s->length;j++)  72     {  73         printf("%d  ",s->array[j]);  74     }  75     printf("n");  76     printf("增加后字符串长度为%dn",s->length);  77     int n;  78     deleteElem(*s,2,n);  79  80     printf("%dn",n);  81     for(int k=0;k<s->length;k++)  82     {  83         printf("%d  ",s->array[k]);  84     }  85  86 }