- 顺序表结构定义
-
typedef int seqType; // 定义顺序表数据类型 // 定义顺序表的结构体 typedef struct t_sList { seqType* pbase; // 表基址 int capacity; // 表容量 int size; // 表长度 }mySList;
- 顺序表定位元素下标
-
/** * @brief 功能:定位元素值key的下标 \n * @param[in] plist:表结构指针 * @param[in] key:待查找关键字 * @retval ERROR(0):顺序表不存在,定位失败 * @retval 非负整数值:key元素所在表中的下标,取值为[0,size-1] */ status sList_locate(const mySList* plist, seqType 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表示找不到