一、顺序表结构定义
#define INIT_SIZE 10 // 顺序表初始容量
typedef void(myOpFunType)(void*); // 定义操作函数类型
typedef int seqType; // 定义顺序表元素类型
// 定义顺序表结构体
typedef struct t_sqList
{
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 flagFull = plist->capacity == plist->size;
// 表满,且扩容失败
if (flagFull && OK != sList_expand(plist, 1))
{
return 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,plist,size From: https://www.cnblogs.com/kxwslmsps/p/17107637.html