1 #define ListSize 100 2 #include<stdio.h> 3 // 存储结构 4 typedef struct Seqlist 5 { 6 int list[ListSize]; 7 int length; 8 }; 9 //初始化 10 void InitList(Seqlist *L) 11 { 12 L->length=0; 13 } 14 15 //判断是否为空 16 int ListEmpty(Seqlist L) 17 { 18 if(L.length==0) 19 return 1; 20 else 21 return 0; 22 } 23 //序号查找 24 int GetNum(Seqlist L,int i ,int *e) 25 { 26 if(i<1||i>L.length) 27 return 0; 28 else 29 30 *e=L.list[i-1]; 31 return 1; 32 } 33 34 //按内容查找 35 36 int LocateNum(Seqlist L,int e) 37 { 38 int i; 39 for (int i = 0; i < L.length; i++) 40 { 41 if(L.length==e) 42 return i+1; 43 return 1; 44 } 45 } 46 47 int InsertList(Seqlist *L,int i,int e) 48 { 49 int j; 50 if(i<i||i>L->length+1) 51 { 52 printf("插入位置非法!"); 53 return 0; 54 } 55 else if(L->length>=ListSize) 56 { 57 printf("链表存储已满!"); 58 return 0; 59 } 60 else 61 { 62 for(j=L->length;j>=i;j--) 63 L->list[j]=L->list[j-1]; 64 L->list[i-1]=e; 65 L->length=L->length+1; 66 return 1; 67 } 68 } 69 //删除第i个元素 70 int DeleteList( Seqlist *L,int i,int *e) 71 { 72 int j; 73 if(L->length<=0) 74 { 75 76 printf("链表为空!"); 77 return 0; 78 } 79 else if(i<1||i>L->length) 80 { 81 printf("删除位置不合适! "); 82 return 0; 83 } 84 else 85 { 86 *e=L->list[i-1]; 87 for ( j = i; j < L->length; j++) 88 { 89 L->list[j-1]=L->list[j]; 90 91 } 92 L->length=L->length-1; 93 return 1; 94 } 95 } 96 97 // 求表长 98 99 int ListLength(Seqlist L) 100 { 101 return L.length; 102 } 103 104 // 清空表 105 void ClearList(Seqlist L) 106 { 107 L.length=0; 108 }
1 #include"Seqlist.h" 2 #include<stdio.h> 3 #define ListSize 100 4 int main() 5 { 6 /* InsertList DeleteList ClearList GetNum ListEmpty ListLength LocateNum */ 7 int a[5]={1,3,5,7,8}; 8 int b[5]={10,12,14,16,18}; 9 Seqlist A,B; 10 int e; 11 InitList(&A); 12 InitList(&B); 13 for (int i = 0; i <sizeof(a); i++) 14 { 15 InsertList(&A ,i,a[i]); 16 } 17 for (int i = 0; i < A.length; i++) 18 { 19 if(GetNum(A,i,&e)); 20 printf("A表内容是:%d ",e); 21 } 22 23 for (int i = 0; i <sizeof(b); i++) 24 { 25 InsertList(&B ,i,b[i]); 26 } 27 for (int i = 0; i < B.length; i++) 28 { 29 if(GetNum(B,i,&e)); 30 printf("B表内容是:%d ",e); 31 } 32 33 return 0; 34 35 }