- 顺序表结构定义
-
typedef int seqType; // 定义顺序表数据类型 // 定义顺序表的结构体 typedef struct t_sList { seqType* pbase; // 表基址 int capacity; // 表容量 int size; // 表长度 }mySList;
- 顺序表头插入法
-
/** * @brief 功能: 头插 \n * @param[in] plist:表结构指针 * @param[in] x:待插元素 * @retval OK(1):插入成功 * @retval ERROR(0):表结构不存在,插入失败 * @retval OVERFLOW(-2):表满且扩容失败,插入失败 */ status sList_push_front(mySList* plist, seqType x) { if (plist == NULL || plist->pbase == NULL) { return ERROR; } int ret = plist->capacity == plist->size; if (ret && OK != sList_expand(plist, 3)) { return OVERFLOW; } for (int i = plist->size; i > 0; --i) { plist->pbase[i] = plist->pbase[i - 1]; } plist->pbase[0] = x; plist->size++; return OK; }
- 顺序表尾插法
-
/** * @brief 功能: 尾插\n * @param[in] plist:表结构指针 * @param[in] x:待插元素 * @retval OK(1):插入成功 * @retval ERROR(0):表结构不存在,插入失败 * @retval OVERFLOW(-2):表满且扩容失败,插入失败 */ status sList_push_back(mySList* plist, seqType x) { if (plist == NULL || plist->pbase == NULL) { return ERROR; } int ret = plist->capacity == plist->size; if (ret && OK != sList_expand(plist, 3)) { return OVERFLOW; } plist->pbase[plist->size++] = x; return OK; }