/**
* @brief 功能:定位元素值key的下标 n
* @param[in] plist:表结构指针
* @param[in] key:待查找关键字
* @return 返回是否定位成功的结果状态标志
* @retval - ERROR(-1):顺序表不存在,定位失败
* @retval - 非负整数值:key元素所在表中的下标,取值为[0,size-1]
*/
status sList_locate(const mySList* plist, etype key)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int pos = -1;
for (int i = 0; i < plist->size; ++i)
{
if (key == plist->pbase[i])
{
pos = i;
break;
}
}
return pos;
#if 0 // while循环实现
int pos = plist->size - 1;
while (pos > -1 && plist->pbase[pos] != key)
{
--pos;
}
return pos;
#endif // 0
}// 返回值为key所在下标,可能范围为[-1,size-1],-1表示找不到