一、顺序表结构定义
#define INIT_SIZE 10 // 顺序表初始容量
typedef void(myOpFunType)(void*); // 定义操作函数类型
typedef int seqType; // 定义顺序表元素类型
// 定义顺序表结构体
typedef struct t_sqList
{
seqType* pbase; // 表基址
int capacity; // 表容量
int size; // 表长度
}mySList;
二、顺序表:按位置删除表元素,remove
/**
************************************************************************
* @brief 功能:删除index下标处的元素 \n
* @param[in] plist:表结构指针
* @param[in] index:待删元素下标
* @retval OK(1):删除成功
* @retval ERROR(0):顺序表不存在,删除失败
* @retval FALSE(0):表为空,删除失败
* @retval ERR_PARA(-1):待删元素下标不在[0,size-]范围,删除失败
************************************************************************
*/
status sList_remove(mySList* plist, int index)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
if (plist->size == 0)
{
return FALSE; // 表空,不可删除
}
if (index<0 || index>plist->size - 1)
{
return ERR_PARA; // index参数不符合要求
}
// i的含义是被移动元素的下标范围[pos+1,size-1]
for (int i = index + 1; i < plist->size; ++i)
{
plist->pbase[i - 1] = plist->pbase[i];
}
plist->size--;
return OK;
}
标签:index,顺序,删除,--,remove,kx00010,int,plist,size From: https://www.cnblogs.com/kxwslmsps/p/17107640.html