一、定义顺序表结构
#define INIT_SIZE 10 ///< 顺序表初始容量
typedef int seqType; ///< 定义顺序表元素类型
/// @brief 顺序表结构定义
typedef struct t_sqList
{
seqType* pbase; ///< 表基址
int capacity; ///< 表容量
int size; ///< 表长度
}mySList;
二、删除所有x元素
/**
***********************************************************************
* @brief 功能: 删除表中值等于x的所有元素 \n
* @param[in] plist:顺序表结构指针
* @param[in] x:待删元素值
* @retval ERROR(0):顺序表不存在,不可操作
* @retval OK(1):删除成功
* @note 若将status
***********************************************************************
*/
status sList_removeX(mySList* plist, seqType x)
{
if (NULL == plist || NULL == plist->pbase)
{
return ERROR;
}
int i = 0; ///< 用i遍历表,取pbase[i]元素
int index = 0; ///< 将不等于x的元素存到结果表pbase[index]中
while (i < plist->size)
{
/// 若元素值等于x,则该元素不存放到结果表中。继续遍历剩下元素
if (x == plist->pbase[i])
{
++i;
continue;
}
plist->pbase[index++] = plist->pbase[i++];
}
plist->size = index;
return OK;
}
标签:表中值,index,pbase,顺序,删除,int,元素,plist
From: https://www.cnblogs.com/kxwslmsps/p/17121864.html