🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:数据结构
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!
【王道数据结构笔记】顺序表的基本操作--查找(代码分析
- 引言
- 一 代码
- 二 代码分析
- 总结
引言
一 代码
//按位查找
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];
}
分析步骤:
- 函数定义:
int GetElem(Sqlist L, int i)
定义了一个名为GetElem
的函数,该函数接受一个顺序表L
和一个整数i
作为参数,并返回一个整数。
int GetElem(Sqlist L, int i)
- 返回语句:
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;
}
分析步骤:
- 函数定义:
int LocateElem(Sqlist L, int e)
定义了一个名为LocateElem
的函数,该函数接受一个顺序表L
和一个整数e
作为参数,并返回一个整数。
int LocateElem(Sqlist L, int e)
- 循环开始:
for (int i = 0; i < L.length; i++)
这行代码初始化一个循环,从索引0开始遍历顺序表L
的所有元素,直到索引i
达到L.length
(顺序表的长度)。
for (int i = 0; i < L.length; i++)
- 条件判断:
if (L.data[i] == e)
这行代码判断顺序表L
中第i
个位置上的元素是否等于e
。
if (L.data[i] = e)
- 返回索引:
return i + 1;
如果上面的条件成立,这行代码会返回元素e
在顺序表L
中的位置(索引加1,以符合从1开始的计数习惯)。
return i + 1;
-
循环结束:当循环结束,即遍历完顺序表
L
的所有元素后,如果没有找到元素e
,则执行下面的代码。 -
返回0:
return 0;
这行代码表示如果在顺序表L
中没有找到元素e
,则函数返回0。在程序逻辑中,0通常表示“未找到”或“失败”的情况。
return 0;
总结
GetElem
函数简单明了,用于获取顺序表中指定位置的元素。而 LocateElem
函数则用于查找顺序表中是否存在某个元素,并返回其位置(如果存在)。
这篇文章到这里就结束了
谢谢大家的阅读!
如果觉得这篇博客对你有用的话,别忘记三连哦。
我是豌豆射手^,让我们我们下次再见