kx-000014-顺序表-查找元素是否存在表中()-其他
kx-000014-顺序表-查找元素是否存在表中()
- 顺序表结构体定义。具体的结构体定义请查看头文件:https://www.cnblogs.com/kxwslmsps/p/16937235.html
typedef status int; //< 定义函数结果状态 typedef int etype; //< 元素数据类型 #define CAPACITY 10 //< 定义初始容量 typedef struct tag_seqList { etype* pbase; //< 表基址 int capacity; //< 表容量 int size; //< 表长度 }mySList;
typedef status int; //< 定义函数结果状态
typedef int etype; //< 元素数据类型
#define CAPACITY 10 //< 定义初始容量
typedef struct tag_seqList
{
etype* pbase; //< 表基址
int capacity; //< 表容量
int size; //< 表长度
}mySList;
- 查找元素key,判断该元素是否存在于顺序表中
/**
* @brief 功能:查找元素值key是否在表中 \n
* @param[in] plist:表结构指针
* @param[in] key:待查找关键字
* @return 返回是否查找成功的结果状态标志
* @retval – ERROR(-1):顺序表不存在,查找失败
* @retval – TURE(1):key在表中
* @retval – FALSE(0):key不在表中
*/
status sList_find(const mySList* plist, etype key)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}#if 0 // 方法一:
int pos = plist->size – 1;
while (pos > -1 && plist->pbase[pos] != key)
{
–pos;
}
return (pos > -1 ? TRUE : FALSE);
#endif// 方法二:
return (sList_locate(plist, key) > -1) ? TRUE : FALSE;
}// 返回值为-1,0,1,即ERROR,TRUE,FALSE
/**
* @brief 功能:查找元素值key是否在表中 \n
* @param[in] plist:表结构指针
* @param[in] key:待查找关键字
* @return 返回是否查找成功的结果状态标志
* @retval - ERROR(-1):顺序表不存在,查找失败
* @retval - TURE(1):key在表中
* @retval - FALSE(0):key不在表中
*/
status sList_find(const mySList* plist, etype key)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
#if 0 // 方法一:
int pos = plist->size - 1;
while (pos > -1 && plist->pbase[pos] != key)
{
--pos;
}
return (pos > -1 ? TRUE : FALSE);
#endif
// 方法二:
return (sList_locate(plist, key) > -1) ? TRUE : FALSE;
}// 返回值为-1,0,1,即ERROR,TRUE,FALSE
- 顺序表结构体定义。具体的结构体定义请查看头文件:https://www.cnblogs.com/kxwslmsps/p/16937235.html
typedef status int; //< 定义函数结果状态 typedef int etype; //< 元素数据类型 #define CAPACITY 10 //< 定义初始容量 typedef struct tag_seqList { etype* pbase; //< 表基址 int capacity; //< 表容量 int size; //< 表长度 }mySList;
typedef status int; //< 定义函数结果状态
typedef int etype; //< 元素数据类型
#define CAPACITY 10 //< 定义初始容量
typedef struct tag_seqList
{
etype* pbase; //< 表基址
int capacity; //< 表容量
int size; //< 表长度
}mySList;
- 查找元素key,判断该元素是否存在于顺序表中
/**
* @brief 功能:查找元素值key是否在表中 \n
* @param[in] plist:表结构指针
* @param[in] key:待查找关键字
* @return 返回是否查找成功的结果状态标志
* @retval – ERROR(-1):顺序表不存在,查找失败
* @retval – TURE(1):key在表中
* @retval – FALSE(0):key不在表中
*/
status sList_find(const mySList* plist, etype key)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}#if 0 // 方法一:
int pos = plist->size – 1;
while (pos > -1 && plist->pbase[pos] != key)
{
–pos;
}
return (pos > -1 ? TRUE : FALSE);
#endif// 方法二:
return (sList_locate(plist, key) > -1) ? TRUE : FALSE;
}// 返回值为-1,0,1,即ERROR,TRUE,FALSE
/**
* @brief 功能:查找元素值key是否在表中 \n
* @param[in] plist:表结构指针
* @param[in] key:待查找关键字
* @return 返回是否查找成功的结果状态标志
* @retval - ERROR(-1):顺序表不存在,查找失败
* @retval - TURE(1):key在表中
* @retval - FALSE(0):key不在表中
*/
status sList_find(const mySList* plist, etype key)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
#if 0 // 方法一:
int pos = plist->size - 1;
while (pos > -1 && plist->pbase[pos] != key)
{
--pos;
}
return (pos > -1 ? TRUE : FALSE);
#endif
// 方法二:
return (sList_locate(plist, key) > -1) ? TRUE : FALSE;
}// 返回值为-1,0,1,即ERROR,TRUE,FALSE