一、定义顺序表结构
#define INIT_SIZE 10 ///< 顺序表初始容量
typedef int seqType; ///< 定义顺序表元素类型
/// @brief 顺序表结构定义
typedef struct t_sqList
{
seqType* pbase; ///< 表基址
int capacity; ///< 表容量
int size; ///< 表长度
}mySList;
二、按位置删除
1、思路
2、代码
/// @brief 功能:删除index下标处的元素
/// @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,顺序,下标,删除,表中,plist,size
From: https://www.cnblogs.com/kxwslmsps/p/17124550.html