线性表的基本操作
- 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 }