数据结构之单链表

news2024/11/27 9:50:20

在这里插入图片描述在这里插入图片描述

一、链表的组成

链表是由一个一个的节点组成的,节点又是一个一个的对象,
相邻的节点之间产生联系,形成一条链表。

例子:假如现在有两个人,A和B,A保存了B的联系方式,这俩人之间就有了联系。
A和B就好比是节点,一个节点保存另一个节点的地址,这两个节点之间就产生了联系。

二、链表的重要的两类

一、单向非循环不带头链表的特点

1、单链表的尾节点

例子1:一条横线都有结束的标志,当这条横线的尾端不再延申,这条横线就是结束了。
例子2:一个人的手机通讯录中没有保存任何人的联系方式,通讯录中显示“空”这个汉字。

这条横线就好比是单链表,单链表也应该有结束的标志。
刚才这个人就好比是单链表中的最后一个节点,也就是尾节点,这个节点没有保存任何一个节点的地址,应该显示为null。

2、相邻节点之间的关系

例子:现在有一排宝箱,第一个宝箱里面放着第二个宝箱的钥匙,第二个宝箱里面放着第三个宝箱的钥匙。

宝箱就好比是节点,钥匙就好比是对象的地址,相邻的节点,前面的节点保存后面的节点的地址。

3、如何通过一个引用变量head,访问这条链表中的所有节点。

在解释这个问题之前,有1个知识需要我们了解:

1:例子:如果家里的人想要联系在外地打拼的年轻人,需要存下他们的电话号码或者地址,通过电话号码和地址就可以找到他,否则是无法是找到的。
年轻人就好比是Java中的对象,如果想要找到存放在堆中的对象,需要把对象的地址存到引用变量中,通过地址就可以找到这个对象。

例子:就拿我们刚才宝箱那个例子来说,如果我们想要访问每一个宝箱,看看里面有什么好东西,必须要得到第一个宝箱的钥匙,打开第一个宝箱,得到第二个宝箱的钥匙,打开第二个宝箱,得到第三个宝箱的钥匙,以此类推。
宝箱就是节点,钥匙就是地址。

结合这两个例子和上面说的相邻节点之间的关系,我们可以理解:
要得到第一个节点的地址,才能访问所有节点。
所以,将头节点的地址保存到一个引用变量head中,通过head,成功访问链表中的所有节点

1、产生的问题

例子:我一只手只能放一个东西,如果想让我去拿另一个东西,我需要把目前手上的东西扔了,再去拿。
引用变量只能放一个对象的地址,如果我直接通过head依次去保存每一个对象的地址,访问每一个节点,那么访问完之后,head里面放的是null,第一个节点的地址就得不到了。
所以应该找个“替死鬼”,声明一个新的变量,将head里面的值拷贝到新的变量中

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

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

相关文章

HashMap底层实现原理概述

原文https://blog.csdn.net/fedorafrog/article/details/115478407 hashMap结构 常见问题 在理解了HashMap的整体架构的基础上,我们可以试着回答一下下面的几个问题,如果对其中的某几个问题还有疑惑,那就说明我们还需要深入代码&#xff0c…

ubuntu 20.04 安装 flameshot截图工具

ubuntu 20.04 安装 flameshot截图工具安装命令使用命令设置快捷键效果图安装命令 sudo apt-get install flameshot安装日志 $ sudo apt-get install flameshot [sudo] password for huifeimao: Reading package lists… Done Building dependency tree Reading state informat…

【零基础入门前端系列】—表格(五)

【零基础入门前端系列】—表格(五) 一、表格 表格在数据展示方面非常简单,并且表现优秀,通过与CSS的结合,可以让数据变得更加美观和整齐。 单元格的特点:同行等高、同列等宽。 表格的基本语法&#xff1…

性能测试之tomcat+nginx负载均衡

nginx tomcat 配置准备工作:两个tomcat 执行命令 cp -r apache-tomcat-8.5.56 apache-tomcat-8.5.56_2修改被复制的tomcat2下conf的server.xml 的端口号,不能与tomcat1的端口号重复,不然会启动报错 ,一台电脑上想要启动多个tomcat&#xff0c…

自定义bean 加载到spring IOC容器中

自定义bean加载到spring容器中的两种方式: 1.在类上添加注解Controller、RestController(本质是Controller)、Service、Repository、Component2.使用Configuration和Bean 这篇文章主要介绍第二种方式原理(因为在实际使用中&#…

SteaLinG:一款针对社工的开源安全渗透测试框架

关于SteaLinG SteaLinG是一款功能强大的开源渗透测试框架,该框架专为社会工程学研究人员设计,可以帮助广大研究人员或组织内的安全专家测试目标设备的安全性。该工具基于Python开发,因此具备良好的跨平台特性。在使用时,我们只需…

2023软考纸质证书领取通知来了!

不少同学都在关注2022下半年软考证书领取时间,截止至目前,上海、湖北、江苏、南京、安徽、山东、浙江、宁波、江西、贵州、云南、辽宁、大连、吉林、广西地区的纸质证书可以领取了。将持续更新2022下半年软考纸质证书领取时间,请同学们在证书…

信息安全保障

信息安全保障信息安全保障基础信息安全保障背景信息安全保障概念与模型基于时间的PDR模型PPDR模型(时间)IATF模型--深度防御保障模型(空间)信息安全保障实践我国信息安全保障实践各国信息安全保障我国信息安全保障体系信息安全保障…

SpringColud第四讲 Nacos的Windows安装方式和Linux的安装方式

在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: 目录 1.Windows安装Nacos 1.1.下载 1.2.解压 1.3.修改相关配置: 1.4.启动: 1.5.登录: 2.Linux的安装方式Nacos 2.1.…

python cartopy手动导入地图数据绘制底图/python地图上绘制散点图:Downloading:warnings/散点图添加图里标签

……开学回所,打开电脑spyder一看一脸懵逼,简直不敢相信这些都是我自己用过的代码,想把以前的自己喊过来科研了() 废话少说,最近写小综述论文,需要绘制一个地图底图+散点图&#xff…

Cortex-M0存储器系统

目录1.概述2.存储器映射3.程序存储器、Boot Loader和存储器重映射4.数据存储器5.支持小端和大端数据类型数据对齐访问非法地址多寄存器加载和存储指令的使用6.存储器属性1.概述 Cortex-M0处理器具有32位系统总线接口,以及32位地址线(4GB的地址空间&…

TongWeb8数据源相关问题

问题一:数据源连接不足当TongWeb数据源连接用完时,除了监控中看到连接占用高以外,日志中会有如下提示信息。2023-02-14 10:24:43 [WARN] - com.tongweb.web.jdbc.pool.PoolExhaustedException: [TW-0.0.0.0-8088-3] Timeout: Pool empty. Una…

Hadoop高可用搭建(一)

目录 创建多台虚拟机 修改计算机名称 快速生效 修改网络信息 重启网络服务 关闭和禁用每台机的防火墙 同步时间 安装ntpdate 定时更新时间 启动定时任务 设置集群中每台机器的/etc/hosts 把hosts拷贝发送到每一台虚拟机 配置免密登陆 将本机的公钥拷贝到要免密登…

二三层网络设备封装与解封装原理

1、寻址转发(寻址指的是寻找IP地址) 路由表放在一个公共的地方,比如主控板上,由主控板 的CPU运行路由协议,计算路由,生成和维护路由表。 转发表与路由表: 转发表是根据路由表生成的。路由表中…

17- 梯度提升回归树GBDT (集成算法) (算法)

单一KNN算法: # knn近邻算法: K-近邻算法(KNN) from sklearn.neighbors import KNeighborsClassifier knn KNeighborsClassifier() knn.fit(X_train,y_train)KNN集成算法: from sklearn.neighbors import KNeighborsClassifier from sklearn.ensemble i…

在浏览器输入URL后发生了什么?

在浏览器输入URL并获取响应的过程,其实就是浏览器和该url对应的服务器的网络通信过程。从封装的角度来讲,浏览器和web服务器执行以下动作:(简单流程)1、浏览器先分析超链接中的URL:分析域名是否规范2、浏览器向DNS请求…

opencv基础知识和绘图图形

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

拥抱ChatGPT,开启结对咨询模式!

ChatGPT刮起了一阵旋风,ChatGPT到底能做什么?做到什么程度?真的会让咨询顾问失业吗?带着这样的疑问,我费尽周折,注册了ChatGPT账号。我先从一个大众化的话题开启了与ChatGPT的对话:如何提高软件…

分享111个HTML电子商务模板,总有一款适合您

分享111个HTML电子商务模板,总有一款适合您 111个HTML电子商务模板下载链接:https://pan.baidu.com/s/1e8Wp1Rl9RaFrcW0bilIatg?pwdc97h 提取码:c97h Python采集代码下载链接:采集代码.zip - 蓝奏云 HTML5家居家具电子商务网…

用到的C++的相关知识-----未完待续

文章目录前言一、vector函数的使用1.1 构造向量二、常用函数2.1 矩阵输出函数2.2 向量输出函数2.3 矩阵的使用2.4三、new的用法3.1 内存的四种分区3.2 new的作用3.33.4四、4.14.24.34.4总结前言 只是为方便学习,不做其他用途 一、vector函数的使用 有关的文章 C v…