一、定义顺序表结构
#define INIT_SIZE 10 ///< 顺序表初始容量
typedef int seqType; ///< 定义顺序表元素类型
/// @brief 顺序表结构定义
typedef struct t_sqList
{
seqType* pbase; ///< 表基址
int capacity; ///< 表容量
int size; ///< 表长度
}mySList;
二、顺序表定位函数
/// @brief 功能:定位元素x在顺序表中第一个下标,即下标值最小 \n
/// @param[in] plist:表结构指针
/// @param[in] x:待查找关键字
/// @retval ERROR(0):顺序表不存在,定位失败
/// @retval 非负整数值:x元素所在表中的下标,取值为[0,size-1]
status sList_locate(const mySList* plist, seqType x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int pos = -1;
for (int i = 0; i < plist->size; ++i)
{
if (x == plist->pbase[i])
{
pos = i;
break;
}
}
return pos;
#if 0 /// while循环实现
pos = plist->size - 1;
while (pos > -1 && plist->pbase[pos] != x)
{
--pos;
}
return pos;
#endif
}///< 返回值为x所在下标,可能范围为[-1,size-1],-1表示找不到
标签:顺序,下标,int,pos,表中,plist,size
From: https://www.cnblogs.com/kxwslmsps/p/17121838.html