单链表的定义

news2025/1/11 3:52:32


一.单链表的定义:

相比于顺序表,单链表不可随机存取,因此单链表中查找数据必须是一个一个找-->查找效率低


二.用代码定义一个单链表:

单链表每一个节点有数据元素存放该元素的指针,该指针指向下一个节点

GetElem方法解读:

把单链表L中的第i个节点取出来,并返回。

参数列表中LinkList L也可以用LNode *L。

LNode是一个结构体类型,LNode *就代表返回了一个指针,因为p为指针。(LNode * p)

LinkList是指针类型,用->关键词访问数据。

方法体解读:LNode *p=L->next;代表L是指针指向下一个节点

如果i为0,直接返回下一个节点;

不为0时如果走第二个if语句说明i为负数,边界点,如果是-1,下一个为0,但已经有了,

如果是-2,下一个是-1,就没意义了,返回空值。

两个if语句都没走时,就正常执行。

例如:


三.初始化单链表:

1.不带头结点的单链表:

注:InitList函数里的参数LinkList &L用了引用&,因为函数的结果最后还要用。没用&的话函数结束后相当于没调用。

2.带头结点的单链表:


四.不带头结点的单链表对比带头结点的单链表:

不带头结点的单链表那么头指针所指向的下一个节点就是实际用于存放数据的节点;

带头结点的单链表那么头指针他所指向的这个节点即头结点,是不存放实际元素的,只有这个头结点之后的下一个节点才会用于存放数据(常用带头结点的单链表)。


五.总结:


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-37 LVDS信号环路测试

软件版本:VIVADO2021.1 操作系统:WIN10 64bit 硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台:米联客-MLK-H3-CZ08-7100开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

2024年全国大学生数学建模A题借鉴论文

问题 1: 舞龙队的动态位置与速度计算 1. **螺旋线的几何建模**:根据题目描述,舞龙队沿着等距螺旋线前进。螺旋线的螺距为 55 cm, 需根据极坐标公式确定每节板凳的位置。 - 极坐标螺旋线方程:\( r a b\theta \)&…

算法专题一: 双指针

目录 前言1. 移动零(easy)2. 复写零(easy)3. 快乐数(medium)4. 盛水最多的容器(medium)5. 有效三角形的个数(medium)6. 和为 s 的两个数字(easy&a…

Linux CentOS 7.9 安装mysql8

1、新建mysql文件夹 数据比较大,所以我在服务器另外挂了一个盘装mysql,和默认安装一个道理,换路径即可 cd ../ //创建文件夹 mkdir mysql //进入mysql文件夹 cd mysql 2、下载mysql8.0安装包并解压、重命名 //下载安装包 wget https://dev…

元宇宙先驱,城市区块链

blockcity 务实元宇宙的先行者,去中心化自治组织开放平台,轻松加入或创建你的DAO组织创新采用Web3和区块链思维,blockcity 真正人人可用,无需下载安装 《福建省元宇宙产业发展行动计划(2024 — 2026 年)在“促进数字创意产业发展”条目提到,…

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional …

oracle锁的机制

文章目录 oracle锁的机制1. 概括2.锁的模式3.锁查看 死锁1. 说明2.死锁产生条件3.解决死锁冲突4. 事务和死锁预防总结 oracle锁的机制 1. 概括 1)说明 锁是一种机制,多个事务同时访问一个数据库对象时,该机制可以实现对并发的控制 2&…

目标检测常见数据集格式

目标检测常见的数据集格式COCO、YOLO、VOC、DATA。 1、COCO 数据标注格式JSON,JSON文件中包含多个关键字段,如info、images、annotations等,分别存储了数据集的基本信息、图像信息和标注信息 COCO数据集的下载 官网地址:http://…

Computer Exercise

每日一练 单选题 在计算机机箱前面板接口插针上(     C   )表示复位开关。 A.SPK    B.PWRLED    C.RESET    D.HDDLED每台PC机最多可接(     B   )块IDE硬盘。 A.2    B.4    C.6    D.8(    …

U盘怎么加密保护?U盘加密方法介绍

在数字化时代,U盘作为一种便携式存储设备,广泛应用于我们的日常生活和工作中。然而,U盘中存储的数据安全性问题日益凸显。为了保护个人隐私和重要数据,学会U盘加密方法显得尤为重要。本文将为您详细介绍几种U盘加密方法&#xff0…

用了虚拟机后,本机摄像头打不开了(联想电脑thinkpad)

虚拟机有摄像头,我断开了连接,现在本机的摄像头打开就是一个锁 我先把虚拟机的摄像头关了 然后把本机的vm usb关闭了 WinR),输入services.msc,找到VMware USB Arbitration Service,确保其状态为“关闭 然后…

UniApp实现漂亮的音乐歌词滚动播放效果

在现代的音乐播放应用中,歌词的展示和滚动播放已经成为了一个非常常见的功能。今天,我们将通过UniApp来实现一个漂亮的歌词滚动播放功能。我们将使用UniApp提供的组件和API来完成这个任务。 页面结构 在页面的模板部分,我们需要创建一个音频…

实现简单聊天

管道通信 目的: 实现 xxz 与 zy 之间的通讯聊天 功能: 同一网络下进行的模拟通讯实现 缺点:没有涉及到网络的通信,只是简单的进程之间模拟的通信 采用到的技术点: 1 有名管道 优点: 在文件系统中作为一…

c++修炼之路之特殊类设计与类型转换

目录 一:特殊类设计 1.设计一个不能被拷贝的类 2.设计一个只能在堆上创建对象的类 3.设计一个只能在栈上创建对象的类 4.设计一个不能被继承的类 5.设计一个只能创建一个对象的类(单例模式) 二:c的类型转换 1.自定义类型,内置类型…

计算机的错误计算(八十五)

摘要 计算机的错误计算(八十一)至(八十四)介绍了双曲正弦、余弦、正割以及余割函数的计算精度问题。本节说明导致这些计算错误的主要原因。 首先,双曲正弦、余弦、正割以及余割函数主要包括 与 的计算,以…

逐行讲解Transformer的代码实现和原理讲解:nn.Linear线性层原理

视频详细讲解:LLM模型:代码讲解Transformer运行原理(1)_哔哩哔哩_bilibili 1 概述 经过Transformer的12个块处理完之后,4批文本数据得到了一个矩阵[4, 8, 16],也就是每批数据都训练出了一个结果,在训练阶段&#xff…

Netty系列-3 ChannelFuture和ChannelPromise介绍

背景 Netty源码中大量使用了Future和Promise,学习ChannelFuture和ChannelFuture有助于理解Netty的设计思路。 本文的重点内容在于梳理清楚这些类的关系以及结合源码实现介绍这些类的作用,其中核心逻辑在于DefaultPromise和DefaultChannelPromise&#x…

GBase8sV8.8安装指南

目录 一、下载 Gbase 安装包二、安装预置条件1.确保安装包和平台适配2.安装依赖包:jdk(1.6版本以上)、unzip、libaio、libgcc、libstdc、ncurses、pam,如果缺失请提前安装 三、上传包并解压四、安装五、登录并创建数据库六、启动停止数据库七、常见问题八…

虚拟机ubuntu与主机共享文件夹

现在主机(windows)上新建一个共享文件夹 打开虚拟机 按下面操作打开共享文件夹 进入虚拟机的系统 cd /mnt/hgfs 如果报错 可以按下面的解决 挂载一下 sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 如果显示不存在这个文…

session机制

场景:当众多用户访问网站,发出HTTP请求,那么网站是如何判断哪个HTTP请求对应的是哪个用户 ? 作用:用于服务端区分用户。 当用户使用客户端登录时,服务端会进行验证,验证通过后会为这次登录创建…