初始化顺序表
void InitList(SqList * &L) { L = (SqList *)malloc(sizeof(SqList)); if (!L) { exit(OVERFLOW); } L->length = 0; } 销毁顺序表
void Destroy(SqList * &L) { free(L); } 判断顺序表是否为空
Status ListEmpty(SqList * &L) { if (L->length == 0) return TRUE; else return FALSE; } 求顺序表表长
int ListLength(SqList * L) { return L->length; } 打印顺序表
void DispList(SqList * L) { printf("打印\n"); int i; if (ListEmpty(L)) return; for (i = 0; i < L->length; i++) { printf("%d\t", L->data[i]); } printf("\n"); } 获取顺序表指定元素
Status GetElem(SqList * L, int i, ElemType &e) { if (i < 1 || i > L->length) return FALSE; e = L->data[i - 1]; return TRUE; } 获取元素在顺序表中的位置
int LocateElem(SqList * L, ElemType e) { int i = 0; while (i < L->length && L->data[i] != e) { i++; } if (i >= L->length) return 0; return i + 1; } 元素插入操作
Status ListInsert(SqList * &L, int i, ElemType e) { int j; if (i < 1 || i > L->length + 1) return FALSE; i--; for (j = L->length; j > i; j--) L->data[j] = L->data[j - 1]; L->data[i] = e; L->length++; return TRUE; } 元素删除操作
Status ListDelete(SqList * &L, int i, ElemType &e) { int j; if (i < 1 || i > L->length) return FALSE; i--; e = L->data[i]; for (j = i; j < L->length; j++) L->data[j] = L->data[j + 1]; L->length--; return TRUE; } 创建顺序表
void CreateList(SqList * &L, int n) { int i = 0; int d; for (; i < n; i++) { printf("输入数据:\n"); scanf("%d", &d); L->data[i] = d; L->length++; } } 文章来源: https://blog.csdn.net/Flythewag/article/details/88867027