顺序存储和链式存储

简介: 顺序存储和链式存储

数据结构

数据结构是计算机存储、组织数据的方式(规则),或者说数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,比如自定义的一个类也可以称为一种数据结构自己定义的数据组合规则。我们不需要把数据结构想的太复杂,简单点理解,就是人定义的存储数据和表示数据之间关系的规则而已。

常用的数据结构:数组、栈、队列、链表、树、图、堆、散列表。

线性表

线性表是一种数据结构,是由n个具有相同特性的数据元素的有限序列,比如数组、ArrayList.Stack.Queue、链表等等。

顺序存储和链式存储是数据结构中两种存储结构,顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。链式存储结构,又叫链接存储结构。在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。

顺序存储

数组、Stack、Queue.List、ArrayList等都属于顺序存储。

只是数组、stack、Queue的组织规则不同而已。顺序存储的原理是用一组地址连续的存储单元依次存储线性表的各个数据元素。

链式存储

单向链表、双向链表、循环链表等都属于链式存储。

用一组任意的存储单元存储线性表中的各个数据元素。

两种存储结构各有长短,选择哪一种由实际问题中的主要因素决定。通常“较稳定”的线性表,即主要操作是查找操作的线性表,适于选择顺序存储;而频繁做插入删除运算的(即动态性比较强)的线性表适宜选择链式存储。

实现一个简单的单向链表

class LinkedNode<T>
{
    public T value;
    public LinkedNode<T> nextNode;
    public LinkedNode(T _value)
    {
        value = _value;
    }
}
LinkedNode<int> head = new LinkedNode<int>(1);
LinkedNode<int> node = new LinkedNode<int>(2);
head.nextNode = node;
node.nextNode = new LinkedNode<int>(4);

需要注意的是,遍历链表要用while从头结点一层一层找。

顺序存储和链式存储的优缺点:

增:链式纯粹不用移动位置

删:链式存储不用移动位置

查:顺序存储不用while遍历

改:顺序查找更快

目录
相关文章
|
5月前
|
传感器 数据采集 算法
STM32的SPI双机通信实现
STM32的SPI双机通信实现
651 0
|
12月前
|
存储 算法 C语言
高精度算法
本文详细介绍了高精度算法的实现,涵盖加法、减法、乘法、除法及取模等操作。通过字符串与数组结合的方式,解决了大数运算中超出数据类型范围的问题。每种运算均提供完整的C++代码示例,包括输入处理、位运算模拟、进位/借位逻辑以及结果输出。其中,高精度加法和减法通过逆序存储数字简化计算;乘法利用双重循环模拟手算过程;除法分为低精度和高精度两种情况,分别采用逐位试商与减法模拟;取模则通过逐位累加求余实现。这些方法为处理大规模数值运算提供了有效工具,适用于竞赛编程与实际开发场景。
489 24
|
NoSQL 数据库 Redis
分布式锁的实现方案有哪些
分布式锁用于协调跨多个节点的任务执行。基于数据库的分布式锁利用唯一性约束或悲观锁确保锁的唯一性;Redis 实现则依赖 SETNX 指令或 redisson 客户端,通过原子操作保证互斥性;ZooKeeper 通过临时顺序节点与 Watch 机制,实现锁的竞争、释放及获取。
240 4
基于kalman滤波的UAV三维轨迹跟踪算法matlab仿真
本文介绍了一种使用卡尔曼滤波(Kalman Filter)对无人飞行器(UAV)在三维空间中的运动轨迹进行预测和估计的方法。该方法通过状态预测和观测更新两个关键步骤,实时估计UAV的位置和速度,进而生成三维轨迹。在MATLAB 2022a环境下验证了算法的有效性(参见附图)。核心程序实现了状态估计和误差协方差矩阵的更新,并通过调整参数优化滤波效果。该算法有助于提高轨迹跟踪精度和稳定性,适用于多种应用场景,例如航拍和物流运输等领域。
1145 12
|
存储 算法 C语言
【数据结构】线性表的顺序存储结构
【数据结构】线性表的顺序存储结构
481 1
|
监控 数据可视化 API
Elasticsearch 的实时监控与告警
【9月更文第3天】随着数据量的不断增加和业务复杂度的提升,对数据系统的实时监控和告警变得至关重要。Elasticsearch 作为一个高性能的搜索和分析引擎,提供了丰富的工具和插件来帮助用户实现实时监控和自动化告警。本文将详细介绍如何配置 Elasticsearch 以实现实时数据监控,并自动触发告警机制。
1467 3
【植物大战僵尸杂交版】致敬传奇游戏玩家——一个普通人的六年坚持
【植物大战僵尸杂交版】致敬传奇游戏玩家——一个普通人的六年坚持
|
算法 计算机视觉
图像处理之线性插值旋转算法(biline-interpolation rotate algorithm)
图像处理之线性插值旋转算法(biline-interpolation rotate algorithm)
303 0
|
机器学习/深度学习 人工智能 自然语言处理
从文字到视频:借助ChatGPT与剪映轻松生成高质量视频
从文字到视频:借助ChatGPT与剪映轻松生成高质量视频
1140 0
|
算法
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
647 1