#include <stdio.h> #include <stdlib.h> #define MaxSize 50 typedef int ElemType; typedef struct { ElemType date[MaxSize]; int length; }SqList;//定义顺序表的类型 //初始化顺序表 void InitList(SqList *&L) { L = (SqList*)malloc(sizeof(SqList)); L->length = 0; } //判断顺序表是否为空 bool ListEmpty(SqList *L) { return (L->length == 0); } //将数组元素加入顺序表 void CreateList(SqList *&L,ElemType arr[],int len) { int i = 0; L = (SqList*)malloc(sizeof(SqList)); while(i < len) { L->date[i] = arr[i]; i++; } L->length = len; } //在指定位置插入元素 void ListInsert(SqList *&L, int k, ElemType e) { int i; if(k < 1 || k > L->length+1 || L->length == MaxSize) { printf("插入位置有误!\n"); } else { k--; for(i = L->length; i > k; i--) { L->date[i] = L->date[i-1]; } L->date[k] = e; L->length++; } } //返回顺序表长度 int ListLength(SqList *L) { return (L->length); } //删除指定位置元素 void ListDelete(SqList *&L, int k) { int i; if(k < 1 || k > L->length) { printf("输入位置有误!\n"); } else { k--; for(i = k; i < L->length ;i++) { L->date[i] = L->date[i+1]; } L->length--; } } //输出顺序表 void DispList(SqList *L) { for(int i = 0; i < L->length; i++) { printf("%d ",L->date[i]); } } //销毁顺序表 void DeleteList(SqList *&L) { free(L); } void m1(int *e) { *e = 5;//传参引用 } int main() { int arr[5] = {1,2,3,4,5}; int e = 0; SqList *L;//创建顺序表类型的指针 InitList(L); printf("%d\n",ListEmpty(L)); CreateList(L,arr,5); ListInsert(L,3,8); ListDelete(L,3); printf("%d\n",ListLength(L)); DispList(L); DeleteList(L); m1(&e); printf("%d",e); return 0; }
//2023-12-11 22:15:51