【王道数据结构笔记】顺序表的基本操作--查找(代码分析)

本文详细解析了顺序表中的两个基本操作函数:GetElem用于获取指定位置元素,LocateElem用于查找元素并返回其位置。通过代码分析,展示了这两个函数的实现逻辑和工作原理。
摘要由CSDN通过智能技术生成

在这里插入图片描述

🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:数据结构
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

【王道数据结构笔记】顺序表的基本操作--查找(代码分析

在这里插入图片描述

引言

一 代码

//按位查找
int GetElem(Sqlist L, int i)
{
	return L.data[i - 1];
}
//按值查找
int LocateElem(Sqlist L, int e) 
{
	for (int i = 0; i < L.length; i++)
	{
		if (L.data[i] == e) 
		{
			return i + 1;
		}


	}
	return 0;
	
}

二 代码分析

首先,我们来分析第一个函数 GetElem

int GetElem(Sqlist L, int i)
{
	return L.data[i - 1];
}

分析步骤:

  1. 函数定义:int GetElem(Sqlist L, int i) 定义了一个名为 GetElem 的函数,该函数接受一个顺序表 L 和一个整数 i 作为参数,并返回一个整数。
int GetElem(Sqlist L, int i)
  1. 返回语句:return L.data[i - 1]; 这行代码返回顺序表 L 中第 i 个位置上的元素。由于数组索引从0开始,而用户可能希望从1开始计数,因此这里通过 i - 1 将用户提供的索引转换为数组的实际索引。
return L.data[i - 1];

接下来,分析第二个函数 LocateElem

int LocateElem(Sqlist L, int e) 
{
	for (int i = 0; i < L.length; i++)
	{
		if (L.data[i] == e) 
		{
			return i + 1;
		}
	}
	return 0;
}

分析步骤:

  1. 函数定义:int LocateElem(Sqlist L, int e) 定义了一个名为 LocateElem 的函数,该函数接受一个顺序表 L 和一个整数 e 作为参数,并返回一个整数。
int LocateElem(Sqlist L, int e)
  1. 循环开始:for (int i = 0; i < L.length; i++) 这行代码初始化一个循环,从索引0开始遍历顺序表 L 的所有元素,直到索引 i 达到 L.length(顺序表的长度)。
for (int i = 0; i < L.length; i++)
  1. 条件判断:if (L.data[i] == e) 这行代码判断顺序表 L 中第 i 个位置上的元素是否等于 e
if (L.data[i] = e)
  1. 返回索引:return i + 1; 如果上面的条件成立,这行代码会返回元素 e 在顺序表 L 中的位置(索引加1,以符合从1开始的计数习惯)。
return i + 1;
  1. 循环结束:当循环结束,即遍历完顺序表 L 的所有元素后,如果没有找到元素 e,则执行下面的代码。

  2. 返回0:return 0; 这行代码表示如果在顺序表 L 中没有找到元素 e,则函数返回0。在程序逻辑中,0通常表示“未找到”或“失败”的情况。

return 0;

总结

GetElem 函数简单明了,用于获取顺序表中指定位置的元素。而 LocateElem 函数则用于查找顺序表中是否存在某个元素,并返回其位置(如果存在)。

这篇文章到这里就结束了

谢谢大家的阅读!

如果觉得这篇博客对你有用的话,别忘记三连哦。

我是豌豆射手^,让我们我们下次再见

在这里插入图片描述

在这里插入图片描述

  • 34
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值