一、定义顺序表结构
#define INIT_SIZE 10 ///< 顺序表初始容量
typedef int seqType; ///< 定义顺序表元素类型
/// @brief 顺序表结构定义
typedef struct t_sqList
{
seqType* pbase; ///< 表基址
int capacity; ///< 表容量
int size; ///< 表长度
}mySList;
二、表尾追加元素
1、思路
2、代码
/// @brief 将数组arr元素依次追加到顺序表表尾
/// @param plist:表结构指针
/// @param arr:数组首地址
/// @param n:数组元素个数
/// @return status:返回追加结果
/// @retval OK(1):追加成功
/// @retval ERROR(0):顺序表不存在,追加失败
/// @retval ERR_PARA(-1):追加失败:没有待追加的数组元素
/// @retval ERR_OVERFLOW(-2):追加失败:容量不足且扩容失败
status sList_append(mySList* plist, seqType* arr, int n)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
/// 若数组arr为空或不存在
if (n < 1 || arr == NULL)
{
return ERR_PARA; ///< 传入参数错误
}
/// 顺序表可能需要扩容的增量inc
int inc = plist->size + n - plist->capacity;
if (inc > 0 && (OK != sList_expand(plist, inc)))
{
return ERR_OVERFLOW; ///< 扩容失败
}
/// 将数组arr元素依次追加至顺序表表尾
for (int i = 0; i < n; ++i)
{
plist->pbase[i + plist->size] = arr[i];
}
plist->size += n;
return OK;
}
标签:arr,顺序,return,int,表表,追加,kx,plist
From: https://www.cnblogs.com/kxwslmsps/p/17123857.html