1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MaxSize 50 4 typedef int ElemType; 5 typedef struct { 6 ElemType date[MaxSize]; 7 int length; 8 }SqList;//定义顺序表的类型 9 //初始化顺序表 10 void InitList(SqList *&L) { 11 L = (SqList*)malloc(sizeof(SqList)); 12 L->length = 0; 13 } 14 //判断顺序表是否为空 15 bool ListEmpty(SqList *L) { 16 return (L->length == 0); 17 } 18 //将数组元素加入顺序表 19 void CreateList(SqList *&L,ElemType arr[],int len) { 20 int i = 0; 21 L = (SqList*)malloc(sizeof(SqList)); 22 while(i < len) { 23 L->date[i] = arr[i]; 24 i++; 25 } 26 L->length = len; 27 } 28 //在指定位置插入元素 29 void ListInsert(SqList *&L, int k, ElemType e) { 30 int i; 31 if(k < 1 || k > L->length+1 || L->length == MaxSize) { 32 printf("插入位置有误!\n"); 33 } else { 34 k--; 35 for(i = L->length; i > k; i--) { 36 L->date[i] = L->date[i-1]; 37 } 38 L->date[k] = e; 39 L->length++; 40 } 41 } 42 //返回顺序表长度 43 int ListLength(SqList *L) { 44 return (L->length); 45 } 46 //删除指定位置元素 47 void ListDelete(SqList *&L, int k) { 48 int i; 49 if(k < 1 || k > L->length) { 50 printf("输入位置有误!\n"); 51 } else { 52 k--; 53 for(i = k; i < L->length ;i++) { 54 L->date[i] = L->date[i+1]; 55 } 56 L->length--; 57 } 58 } 59 //输出顺序表 60 void DispList(SqList *L) { 61 for(int i = 0; i < L->length; i++) { 62 printf("%d ",L->date[i]); 63 } 64 } 65 //销毁顺序表 66 void DeleteList(SqList *&L) { 67 free(L); 68 } 69 void m1(int *e) { 70 *e = 5;//传参引用 71 } 72 int main() { 73 int arr[5] = {1,2,3,4,5}; 74 int e = 0; 75 SqList *L;//创建顺序表类型的指针 76 InitList(L); 77 printf("%d\n",ListEmpty(L)); 78 CreateList(L,arr,5); 79 ListInsert(L,3,8); 80 ListDelete(L,3); 81 printf("%d\n",ListLength(L)); 82 DispList(L); 83 DeleteList(L); 84 m1(&e); 85 printf("%d",e); 86 return 0; 87 }
标签:顺序,int,void,length,SqList,简单,date,操作 From: https://www.cnblogs.com/Zhang-Z-H/p/17895744.html