一、顺序表结构定义
#define INIT_SIZE 10 // 顺序表初始容量
typedef void(myOpFunType)(void*); // 定义操作函数类型
typedef int seqType; // 定义顺序表元素类型
// 定义顺序表结构体
typedef struct t_sqList
{
seqType* pbase; // 表基址
int capacity; // 表容量
int size; // 表长度
}mySList;
二、把数组arr的n个元素依次追加到顺序表表尾
/**
************************************************************************
* @brief 功能:将数组arr元素依次追加到顺序表表尾 \n
* @param[in] plist:表结构指针
* @param[in] arr:数组
* @param[in] n:数组元素个数
* @retval OK(1):追加成功
* @retval ERROR(0):顺序表不存在,追加失败
* @retval ERR_PARA(-1):追加失败:没有待追加的数组元素
* @retval 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 OVERFLOW; // 扩容失败
}
// 将数组arr元素依次追加至顺序表表尾
for (int i = 0; i < n; ++i)
{
plist->pbase[i + plist->size] = arr[i];
}
plist->size += n;
return OK;
}
标签:arr,顺序,--,int,表表,追加,数组,plist From: https://www.cnblogs.com/kxwslmsps/p/17107620.html