首页 > 其他分享 >顺序表:查找元素x在顺序表中的下标,即定位函数

顺序表:查找元素x在顺序表中的下标,即定位函数

时间:2023-02-15 10:24:08浏览次数:38  
标签:顺序 下标 int pos 表中 plist size

一、定义顺序表结构

#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

相关文章

  • 顺序表:查找元素x是否存在于顺序表中,即查找函数
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:初始化顺序表
    一、顺序表结构定义#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ ......
  • 顺序表:清空和销毁顺序表
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:打印顺序表
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:顺序表扩容
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • Hive 面试题——HiveSQL 执行顺序
    描述今天刷到了一个面试题:hivesql执行顺序,接下来就从一个带有groupby的例子看看hivesql的执行顺序执行顺序为from..on..join..where..groupby..having......
  • vue 父子组件加载顺序(生命周期钩子)
    父组件的实例化过程(包括父组件的beforeCreate和created钩子函数)父组件的模板编译和渲染过程子组件的实例化过程(包括子组件的beforeCreate和created钩子函数)子组件的模......
  • 先找数组的下标 再输出数组
    packagecom.fqs.demo;importjava.util.Random;publicclassOnlyYou{publicstaticvoidmain(String[]args){//输出不重复随机数//1.定......
  • 单链表:在单链表中元素值等于key的所有结点前插入一个元素值为x的新结点
    一单链表结构定义typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_linkNode*pnext;......
  • 分布式服务接口请求的顺序性如何保证?
    1场景服务A调用服务B,先插再删。俩请求过去了,落在不同机器节点,可能插入请求因某些原因执行慢些,导致删除请求先执行了,此时因DB没数据,所以啥影响也没;结果这时插入请求过来了,......