考研C++/C数据结构之单链表两种查找方法

2023-11-17

继上篇文章我们探讨了单链表的两种创建方法(头插法和尾插法),今天我们来学习一下单链表的两种查找方法--按序查找和按值查找。

按序查找的代码实现如下:

//按位查找
LinkList GetElem(LinkList L, int i)
{
	int j = 1;
	LinkList p = L->next;//让p指向第一个节点
	if (0 == i)
	{
		return L;//i是0返回头节点
	}
	if (i < 1)
	{
		return NULL;//i是负值返回空
	}
	while (p&&j<i)
	{
		p = p->next;
		j++;
	}
	return p;
}

这里使用的是while循环循环遍历查找,实现起来方便简单。时间复杂度为O(n)。

下面是按值查找的代码实现:

/按值查找
LinkList LocateElem(LinkList L, ElemType e)
{
	LinkList p = L->next;
	while (p != NULL && p->data != e)
	{
		p = p->next;
	}
	return p;
}

同样,实现也是简单快捷,时间复杂度也为O(n)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

考研C++/C数据结构之单链表两种查找方法 的相关文章

  • 常用Web安全扫描工具合集

    初入门时 喜欢将目标站点直接丢扫描器 慢慢等扫描结果 极度依赖Web扫描器 而有一些漏洞高手 善于运用运用各种工具但并不依赖工具 经常可以找到扫描工具发现不了的漏洞 一款好用的Web扫描器对于白帽子来说 就像剑客手中的剑一样重要 那么 如何

随机推荐

  • python os.walk不递归_python-os.walk目录递归

    递归删除文件或目录 递归 os walk 删除目录 shutil rmtree 1 coding UTF 8 2 importos path sys shutil3 4 path H test 5 6 7 for root dirs fil
  • 敏捷之旅大连站2012第一次筹备会议记录

    昨天召集了敏捷之旅大连站的几位组织者 一起开了一个筹备的讨论会 简单记录如下 1 地点的讨论 目前有几个地点备选 东软会议中心 腾飞软件园的会议厅 中荷人寿会议室以及酒店 综合各种因素 包括地点的交通 午餐的方便程度 场地的大小 音响和投影
  • 2.C++设计模式 - 观察者模式

    class Observer public 构造 Observer 析构 virtual Observer 更新 virtual void updata class Server private 观察者链表 list
  • 微信多客服如何设置快捷回复(高级玩法总结)

    在微信生态 使用公众号小程序等 同时每天会产生很多重复的咨询 如何在微信上实现更高效的快捷回复 把常用语 回答文档等便捷化 标准化对答 避免以往的复制粘贴工作方式 是我们不得不面对的一个问题 应用内回复 全应用回复 个人回复 公共回复 快捷
  • Hadoop - wordCount 实例

    hadoop 创建文件夹存放需要被统计的文件 hadoop fs mkdir usr 创建单子文件并写入内容 可在网上找几篇英文文章写入 vim word txt 上传到 hdfs hadoop fs put word txt usr 利用
  • C#开发学习~~~“未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)”

    引言 在 C 高阶编程 中文第10版 的2 2 4节中 有这样一段描述 看到这段话 我简单的理解为 只要在程序开始用using语句声明名称空间 就可以在当前名称空间使用声明的这个名称空间中的类和方法 但实践证明我的理解是有些错误的T0T 问
  • [坑]拦截器返回response.getWrite().println方法返回数据不全

    在SpringBoot项目中 前端ajax请求后端 拦截器进行登录拦截判断 如果超时返回false 则给前端返回一段json字符串 private static void returnJson HttpServletResponse res
  • C++ cin 实现循环读入

    习惯了使用while scanf d x 来实现循环读入 但是有时候使用泛型编程的时候就必须使用C 中的cin 但是当我想要实现循环读入的时候却发现有些困难 我们可以看一下下面这个简单的例子 include
  • 使用boost::units库进行信息单位转换的C++示例程序

    使用boost units库进行信息单位转换的C 示例程序 include
  • 电视机尺寸与观看距离

    电视机尺寸是指电视机屏幕对角线的长度 以英寸为单位 1英寸 2 54厘米 而且目前来看大多数液晶电视的标准屏幕比已经变成了宽的是16 9 根据勾股定理 对角线的长度是 337 根号337 开放得出 屏幕高度与对角线的比值就是9 337 一般
  • 【新版】系统架构设计师 - 案例分析 - 信息安全

    个人总结 仅供参考 欢迎加好友一起讨论 文章目录 架构 案例分析 信息安全 安全架构 安全模型 分类 BLP模型 Biba模型 Chinese Wall模型 信息安全整体架构设计 WPDRRC模型 各模型安全防范功能 网络安全体系架构设计
  • Linux中创建文件夹,删除文件夹

    Linux中创建目录 mkdir 文件夹 比如 mkdir test 删除文件夹 rm rf 文件夹 比如 rm rf soft vi强制不保存退出命令 q
  • const 定义数组问题

    const keysArr array aaa gt 11111 bbb gt 22222 ccc gt 33333 ddd gt 44444 上面是标准的错误格式 PHP编译不会报详细错误信息 500 查找半天的代码问题 一直未发现错误
  • 解决Jenkins构建前端时node-sass的.node文件下载报错问题的一种方案

    问题背景 公司的npm仓库未跟外网联通 为什么不联通 我也好鸡儿纳闷 使用Jenkins构建前端时 会在下载node sass的 node时报错 默认情况下会从github上去下 node文件 当然也可以通过配置 npmrc文件指定下载路径
  • 浅析Jetty与tomcat区别

    一 Jetty介绍 1 Jetty概述 Jetty是一个开源项目 最初由Mort Bay Consulting公司创建 它的目标是提供一个快速 灵活 可嵌入的Web服务器和Servlet容器 使Java开发人员能够轻松构建高性能的Web应用
  • 如何在 Mac 上录制屏幕?mac录屏教程分享

    您可以为整个屏幕或屏幕上的选定部分录制视频 1 使用 截屏 工具栏 要查看 截屏 工具栏 请同时按下以下三个按键 Shift Command 和 5 您将看到用于录制整个屏幕 录制屏幕的选定部分或拍摄屏幕静态图像的屏幕控制项 录制整个屏幕
  • 泛型的概念

    一 什么是泛型 参数化类型 为什么要引入泛型 1 将不同类型的数据添加到Arraylist中 取出数据要使用时 要进行强制转换 还原 向下转型 2 同时在编写程序时 不会报错 无类型安全监测机制 而结果出错ClassCastExceptio
  • 摄像头在H5的实时播放功能实现历程

    一 问题解决的路程 1 需求来源 因项目发展需求 需要在3D地图上进行实时摄像头监控展示 3D地图是基于浏览器H5页面展示的 在H5页面实时播放摄像头监控就需要可以直接拿到取流地址进行直接播放 以下各大摄像头产商取流方式 海康威视 默认IP
  • 网络层

    网络层 从它的名字可以看出 它解决的是网络与网络之间 即网际的通信问题 而不是同一网段内部的事 用于网络互联的设备都处于网络层 如 路由器 网络交互机等 一个底层网络内部只存在两层 即数据链接层 与 物理层 没有其它层
  • 考研C++/C数据结构之单链表两种查找方法

    继上篇文章我们探讨了单链表的两种创建方法 头插法和尾插法 今天我们来学习一下单链表的两种查找方法 按序查找和按值查找 按序查找的代码实现如下 按位查找 LinkList GetElem LinkList L int i int j 1 Li