搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小丑西瓜9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
前端开发中经常使用到的颜色:_前端颜色
2
网上怎么赚钱?看懂这些你就不愁赚不到钱!
3
react18-webchat:基于react+arco+zustand仿微信客户端聊天实例_仿微信聊天窗口 react
4
AIGC行业现状
5
自然语言处理(二十六):fastText的使用_fasttext怎么用
6
Python操作redis用法详解_python redis hscan_iter(1),2024年最新那些被大厂优化的程序员们
7
Android project not found. Are you sure this is a React Native project?_error android project not found. are you sure this
8
Nvidia Jetson AGX Orin 初体验
9
服务器RAID配置及功能介绍_服务器阵列csdn
10
flink入门_Flink入门实战(1)
当前位置:
article
> 正文
数据结构之链表结构_链表节点由两个字段组成,一个是数据字段,另一个是()字段
作者:小丑西瓜9 | 2024-06-07 17:25:33
赞
踩
链表节点由两个字段组成,一个是数据字段,另一个是()字段
链表
1.链表结构
1.1单链表结构和双链表结构
1.2非连续性内存和节点
1.3单链接节点类
1.4单链表结构上的操作
1.4.1遍历(traversal)
1.4.2 搜索
1.4.3替换
1.链表结构
数组:
要存储多个元素,数组(或列表)可能是最常用的数据结构。
我们之前说过, 几乎每一种编程语言都有默认实现数组结构, 这种数据结构非常方便,提供了一个便利的[]语法来访问它的元素。
但是数组也有很多缺点:
数组的创建通常需要申请一段连续的内存空间(一整块的内存), 并且大小是固定的(大多数编程语言数组都是固定的), 所以当当前数组不能满足容量需求时, 需要扩容. (一般情况下是申请一个更大的数组, 比如2倍. 然后将原数组中的元素复制过去)
而且在数组开头或中间位置插入数据的成本很高, 需要进行大量元素的位移.(尽管我们已经学过的JavaScript的Array类方法可以帮我们做这些事,但背后的原理依然是这样)。
链表
要存储多个元素, 另外一个选择就是使用链表.
但不同于数组, 链表中的元素在内存中不必是连续的空间.
链表的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(有些语言称为指针或者链接)组成.
相对于数组, 链表有一些优点:
内存空间不是比是连续的. 可以充分利用计算机的内存. 实现灵活的内存动态管理.
链表不必在创建时就确定大小, 并且大小可以无限的延伸下去.
链表在插入和删除数据时, 时间复杂度可以达到O(1). 相对数组效率高很多.
相对于数组, 链表有一些缺点:
链表访问任何一个位置的元素时, 都需要从头开始访问.(无法跳过第一个元素访问任何一个元素).
无法通过下标直接访问元素, 需要从头一个个访问, 直到找到对应的问题.
1.1
单链表
结构和双链表结构
链表结构(
linked structure
)
单链表结构(
singly linked structure
)
头链接(
head link
)
空链接(
empty link
)
双链表结构(
doubly linked structure
)
头链接(
head link
)
空链接(
empty link
)
尾链接(
tail link
)
1.2非连续性内存和节点
链表中的基本单位表示是
节点
单链表节点
一个数据项
到结构中的下一个节点的一个链接
链表结构将结构中的项的逻辑顺序和内存中的顺序解耦
设置节点使用不连续内存的方式:
方式一:(FORTRAN)
两个并行数组,一个数组包含了数据项,另一个数组根据数据数组中对应的项,包含了其后继项在数据数组中的索引位置。
方式二:(C++)
单链表结构中的一个节点,包含了一个数据项和指针值,一个特殊的空值,表示的指针值是一个空链接
方式三:(Python)
单链表节点定义包含两个字段的一个对象。一个字段是数据项的一个引用,另一个是到另一个节点的引用。python为每个新的节点对象提供了动态分配的非连续内存,并且当对象不再被应用程序引用的时候,会自动把内存返回给系统(垃圾回收)。
1.3单链接节点类
class
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小丑西瓜9/article/detail/686361
推荐阅读
article
初学者最
系统
的
前端
学习
之路_
前端
系统
学习
...
前端
系统
的
学习
HTML1.我们
的
软件是包含了客户端和服务器端
的
,现在我们要
学习
的
就是客户端
的
知识,客户端又包含了C/S和...
赞
踩
article
spark
集成
hadoop
_
spark
hadoop
集成...
hadoop
环境搭建请参考
hadoop
3.2.2集群搭建环境centos7、jdk1.8.0_311、scala-2.1...
赞
踩
article
单片机
Proteus
软件仿真二(
按键
控制
LED
灯逐个点亮)_
proteus
仿真
按键
控制
led
...
按键
控制
LED
灯逐个点亮_
proteus
仿真
按键
控制
led
proteus
仿真
按键
控制
led
1 ...
赞
踩
article
学习
黑客
十余年
,
如何成为一名
安全
工程师?...
1. 前言说实话
,
一直到现在
,
我都认为绝大多数看我这篇文章的读者最后终究会放弃
,
原因很简单
,
自学终究是一种适合于极少数人...
赞
踩
article
el
-
table
表头
和文字都
居中
方法_
el
-
table
表头
居中
...
在日常开发中,需要写个表格,并且想要美观一点,如果想要
el
-
table
表头
和文字可以
居中
显示?直接上方法:在
el
-ta...
赞
踩
article
Linux
系统安装
DbGate
结合内网
穿透
工具实现
远程
管理本地
数据库
_
linux
系统内网
穿透
远程
软件...
介绍如何在
Linux
Ubuntu系统中使用Docker部署
DbGate
数据库
管理工具,并结合cpolar内网
穿透
工具实...
赞
踩
article
使用
代理
解决
跨域
问题
的
原理_
代理
前后
domain
不相同...
为了安全着想浏览器会设置同源安全策略即不在同一个域名下
的
资源就不能够互相访问要
解决
这个
问题
方法有很多 ,但大致分为两类:...
赞
踩
article
SpringBoot
使用
Validator
进行
参数
校验
(自定义
校验
,
分组
校验
)_
validator
分...
在实际开发中对于需要
校验
的字段都需要设置对应的业务提示,即message属性。@Data@Length(min = 6,...
赞
踩
article
TPM
是
什么
?如何
查看
电脑
的
TPM
?...
或许还有人不知道
什么
是
TPM
,本文带大家了解
TPM
是
什么
以及如何
查看
电脑
的
TPM
。
TPM
是
什么
?如何
查看
电脑
的...
赞
踩
article
大数据
案例
:部署
hadoop
和
spark
,及
案例
spark
wordcout 统计文章高频词汇数据
_
a...
1.部署
hadoop
下载
hadoop
,本
案例
用到2.7.7版本官网下载
hadoop
-2.7.7.tar.gz解压 ta...
赞
踩
article
分布式
概念:
分布式
计算
(
MapReduce
、
Stream
、
Actor
、
流水线
)...
Map Reduce 模式(海量数据的处理)核心思想:将一个复杂的、难以直接解决的大问题,分割成一些规模较小的、可以比较...
赞
踩
article
牛客
刷
题
记录
(常见笔试
题
)
_
牛客
网
题
库...
牛客
刷
题
记录
(高频笔试
题
目)
_
牛客
网
题
库
牛客
网
题
库 目录 一、Map的应用篇 乒 乓球...
赞
踩
article
python
能
做
开发
岗
吗
_
学习
python
python
可以从事哪些职位?...
展开全部下面我们来说一下Python具体的工作
岗
位以及其
岗
位要求:Python后台
开发
工程师:主62616964757a...
赞
踩
article
Php
凉
了
,
CTO
突然离职
,
开源
PHP
官方团队解散!...
点击“开发者技术前线”
,
选择“星标_php 凉
了
php 凉
了
点击“开发者技术前线”
,
选择“星...
赞
踩
article
分布式
要解决的
问题
...
分布式
要解决什么
问题
呢?解决持久化数据太大,单个节点的硬盘无法存储的
问题
;解决运算量太大,单个节点的内存、CPU无法处理...
赞
踩
article
【EI
会议
征稿通知】2024年
计算机
与
多媒体技术
国际
学术
会议
(ICCMT 2024)_
2024ei
国...
多媒体技术
:绘图技术,数字媒体艺术,多媒体应用艺术设计,软件工程、系统工程、控制技术、图像处理、加密技术、信息产业、服务...
赞
踩
article
eclipse
连接
mysql
数据库_
eclipse
连接数据库...
1.
eclipse
连接MySQL的前提是:安装
mysql
8.0→配置好
mysql
的环境变量→创建数据库→连接数据库→创建...
赞
踩
article
分布式计算
概念
_
分布式计算
的
概念
...
1.1
分布式计算
的
概念
1.1.1 定义
分布式计算
是计算机科学的重要研究内容,主要研究对象是分布式系统 。简单地说,一...
赞
踩
article
如何
获取最新的EI
期刊杂志
目录
_
engineeringvillage
如何
下载
期刊
目录
...
进入网页 http://www.elsevier.com/online-tools/engineering-villag...
赞
踩
article
Hive
基本
语法
、
基本
原理和优化方法_请列举几个
hive
的
常用
操作
及
基本
语法
...
背景为方便很多新同学的学习,介绍企业
常用
的
hive
工具,帮助大家快速的融入。一、
Hive
简介1.1 怎么来Faceboo...
赞
踩
相关标签
html5
spark
hadoop
big data
单片机
proteus
嵌入式硬件
学习
安全
网络
网络安全
渗透测试
javascript
vue.js
前端
linux
数据库
运维
使用代理解决跨域问题的原理
spring boot
后端
java
windows
算法