2. 动态顺序表:使用动态开辟的数组存储。
- #pragma once
- #include
- #include
- #include
-
-
- typedef int SLDataType;
-
- typedef struct SeqList
- {
- SLDataType* a;
- int size; // 有效数据
- int capacity; // 空间容量
- }SL;
-
- void SLInit(SL* psl);
- void SLDestroy(SL* psl);
-
- void SLPrint(SL* psl);
- void SLCheckCapacity(SL* psl);
-
- // 头尾插入删除
- void SLPushBack(SL* psl, SLDataType x);
- void SLPushFront(SL* psl, SLDataType x);
- void SLPopBack(SL* psl);
- void SLPopFront(SL* psl);
-
- // pos下标位置前的插入
- void SLInsert(SL* psl, int pos, SLDataType x);
- // pos下标位置的删除
- void SLErase(SL* psl, int pos);
- #include"SeqList.h"
-
- void SLInit(SL* psl)
- {
- assert(psl);
-
- psl->a = NULL;
- psl->size = 0;
- psl->capacity = 0;
- }
-
- void SLDestroy(SL* psl)
- {
- assert(psl);
-
- if (psl->a != NULL)
- {
- free(psl->a);
- psl->a = NULL;
- psl->size = 0;
- psl->capacity = 0;
- }
- }
-
- void SLPrint(SL* psl)
- {
- assert(psl);
-
- for (int i = 0; i < psl->size; i++)
- {
- printf("%d ", psl->a[i]);
- }
- printf("\n");
- }
-
- void SLCheckCapacity(SL* psl)
- {
- assert(psl);
-
- if (psl->size == psl->capacity)
- {
- int newCapacity = psl->capacity