一、定义顺序表结构
#define INIT_SIZE 10 ///< 顺序表初始容量
typedef int seqType; ///< 定义顺序表元素类型
/// @brief 顺序表结构定义
typedef struct t_sqList
{
seqType* pbase; ///< 表基址
int capacity; ///< 表容量
int size; ///< 表长度
}mySList;
二、头插法
1、思路
2、代码
/// @brief 功能: 头插
/// @param[in] plist:表结构指针
/// @param[in] x:待插元素
/// @retval OK(1):插入成功
/// @retval ERROR(0):表结构不存在,插入失败
/// @retval ERR_OVERFLOW(-2):表满且扩容失败
status sList_push_front(mySList* plist, seqType x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
/// 定义表满标志
int flagFull = plist->capacity == plist->size;
/// 表满,且扩容失败
if (flagFull && OK != sList_expand(plist, 1))
{
return ERR_OVERFLOW;
}
/// 将[1,size-1]范围内元素依次向后移动1个位置
for (int i = plist->size; i > 0; --i)
{
plist->pbase[i] = plist->pbase[i - 1];
}
plist->pbase[0] = x;
plist->size++;
return OK;
}
标签:pbase,顺序,首部,int,seqType,kx,plist,size
From: https://www.cnblogs.com/kxwslmsps/p/17124535.html