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

在这里插入图片描述

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

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

  • 引言
    • 一 代码
    • 二 代码分析
  • 总结

在这里插入图片描述

引言

一 代码

//按位查找
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 函数则用于查找顺序表中是否存在某个元素,并返回其位置(如果存在)。

这篇文章到这里就结束了

谢谢大家的阅读!

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

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

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637971.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Hadoop】- YARN架构[7]

前言 Yarn架构是一个用于管理和调度Hadoop集群资源的系统。它是Hadoop生态系统的一部分&#xff0c;主要用于解决Hadoop中的资源管理问题。 通过使用Yarn架构&#xff0c;Hadoop集群中的不同应用程序可以共享集群资源&#xff0c;并根据需要动态分配和回收资源。这种灵活的资…

Android Studio超级详细讲解下载、安装配置教程(建议收藏)

博主介绍&#xff1a;✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神&#xff0c;答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战&#xff0c;深受全网粉丝喜爱与支持✌有…

Eclipse+Java+Swing实现学生信息管理系统-TXT存储信息

一、系统介绍 1.开发环境 操作系统&#xff1a;Win10 开发工具 &#xff1a;Eclipse2021 JDK版本&#xff1a;jdk1.8 存储方式&#xff1a;Txt文件存储 2.技术选型 JavaSwingTxt 3.功能模块 4.工程结构 5.系统功能 1.系统登录 管理员可以登录系统。 2.教师-查看学生…

Java学习Go(入门)

下载Go 《官网下载golang》 直接点Download&#xff0c;然后根据你自己的操作系统进行下载&#xff0c;我这里以win10为例 安装go 默认安装到C:\Program Files\Go&#xff0c;这里我们可以选择安装到其他盘&#xff0c;也可以选择默认安装。初学者建议直接一路next。 安装完…

冷却塔的选型方法介绍

冷却塔形式冷却塔形式冷却塔形式 冷却塔有开式冷却塔、闭式冷却塔 闭式冷却塔与开式冷却塔的区别 1)开式冷却塔的冷却原理就是&#xff0c;通过将循环水以喷雾方式&#xff0c;喷淋到玻璃纤维的填料上&#xff0c;通过水与空气的接触&#xff0c;达到换热&#xff0c;再有风机…

Qt 窗口的坐标体系

Qt 窗口的坐标体系 Qt 中使用的坐标系也是平面直角坐标系&#xff0c;但是呢又和我们平时在数学中使用的坐标系是不同的&#xff0c;我们在数学中使用的坐标系是 x 向右增长&#xff0c; y 向上增长。 但是在 Qt 中使用的是 x 轴不变&#xff0c;y 轴是向下增长的。 所以Qt 中…

用python selenium实现短视频一键推送

https://github.com/coolEphemeroptera/VIVI 效果如下 demo 支持youtube视频搬运

PHP反序列化漏洞原理(附带pikachu靶场演示)

1.反序列化概念 序列化:是将变量转换为可保存或传输的字符串的过程;实现函数是serialize()反序列化:就是在适当的时候把这个字符串再转化成原来的变量使用&#xff0c;就是序列化的逆过程。实现函数是unserialize() 直白一点就是&#xff1a;序列化是把对象转换成字节流&#…

解析 IP(IPv4)地址

IPv 4 地址 一、组成二、IPv4 的分类三、子网掩码四、特殊的地址五、私有 IP 地址六、全局 IP 地址七、私有 IP 地址和全局 IP 地址的关系八、广播地址九、网络地址十、IP 地址个数计算十一、查看电脑的 IP 地址&#xff08;window&#xff09;十二、手动设置电脑的 IP 地址 为…

【C++初阶】vector使用特性 vector模拟实现

1.vector的介绍及其使用 1.1 vector的介绍 vector文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#…

如何利用ChatGPT进行论文撰写?

原文链接&#xff1a;如何利用ChatGPT进行论文撰写&#xff1f;https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601619&idx1&snb686fbe87dedfac2df3a6afe780b2ffe&chksmfa820c34cdf5852251dca64597024ea62ddbde280086535ec251f4b62b848d9f9234688384…

服务器Linux上杀死特定进程的命令:kill

1、查看用户XXX正在运行的进程 top -u xxx2、查看想要杀死的进程对应的PID 先找到此进程对应的命令 取其中的main-a3c.py即可 ps -aux | grep main-a3c.py可以看到对应的PID是1325390使用kill杀死对应PID的进程 kill -9 1325390成功&#xff0c;gpustat可以看到之前一直占…