数据结构的三要素

news2025/1/12 20:06:23

1 三要素之逻辑结构:数据元素之间的逻辑关系

  • 集合:各个元素同属同一集合,别无其他关系,比如全世界500强公司
    在这里插入图片描述

  • 线性结构:数据元素是一对一的关系,除了第一个元素,其他元素都有唯一前驱;除了最后一个元素,其他元素都有唯一后继。比如学生成绩单
    在这里插入图片描述

  • 树形结构:数据元素之间是一对多的关系。比如文件系统
    在这里插入图片描述

  • 图状结构:数据元素是多对多关系。比如朋友关系网
    在这里插入图片描述

2 三要素之数据的运算:针对某种逻辑关系,基于实际需求,定义基本运算

比如:

  • 逻辑结构是线性结构
  • 基本运算:查找第i个元素、在第i与第i+1个元素之间插入元素、删除第i个数据元素等等
  • 运算的定义是针对逻辑结构,指出运算的功能;运算的实现是针对物理结构,指出运算的具体步骤

3 三要素之物理结构(存储结构):使用计算机来表示数据元素的逻辑关系

  • 数据的存储结构有顺序存储、链式存储、索引存储、散列存储

  • 以线性结构为例:
    在这里插入图片描述

  • 顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系也由存储单元的邻接关系来体现
    在这里插入图片描述

  • 链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
    在这里插入图片描述

  • 索引存储:在存储元素信息的同时,还建立索引表(关键字、地址)。索引表中的每项称为索引项。索引存储通过使用特定的数据结构来表示元素之间的逻辑关系。不同的索引结构采用不同的方式来建立和维护元素之间的逻辑关系。
    在这里插入图片描述

  • 散列存储:根据元素的关键字直接计算该元素的存储地址,又称哈希(hash)存储.

  • 顺序存储属于顺式存储,其他的都是非顺式存储。采用何种存储结构也带来一些影响:
    -影响存储空间分配的方便程度
    -影响对数据运算的速度(插入元素)

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

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

相关文章

设计模式学习之工厂方法模式

设计模式系列往期文章 设计模式学习之策略模式设计模式学习之策略模式在前端的应用设计模式学习之简单工厂模式 在上一篇文章中我们学习了简单工厂模式——这是工厂模式中最简单的一种模式,通过工厂类提供的方法创建类(可以类比为产品)&…

【区块链 | GameFi】 - 传统游戏进军链游GameFi的探索之路

撰文:W Labs Kluxury,Cplus 【原文链接】 本文要点: 一,什么游戏类型最适合改为链游? 除了链游特有的质押挖矿型和纯 NFT 型,其余的类型都和传统游戏类型高度重合。所以不存在绝对的什么类型可以链改而什么类型不能链改的结论。 开发者立场上看,符合如下几个特性的游…

机器学习之LDA算法

目录 LDA算法 LDA目标 LDA原理推导 LDA除法模型 LDA减法模型 LDA除法正则模型 LDA减法正则模型 证明:StSwSb LDA算法流程 LDA优点 LDA缺点 基于LDA的人脸识别 LDA算法 线性判别分析(linear discriminant analysis,LDA&#xff0…

chatgpt赋能python:Python编码转换:理解不同的编码方式

Python编码转换:理解不同的编码方式 Python是一种功能强大的编程语言,它广泛用于各种领域,包括Web开发、数据分析、人工智能等等。与其他编程语言类似,Python也需要进行编码转换以处理不同的字符集和文本编码。 本文将介绍Pytho…

Spark Local环境搭建及测试

🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 篇一:Linux系统下配置java环境 篇二:hadoop伪分布式搭建(超详细) 篇三:hadoop完全分布式集群搭建(超详细&#xf…

TypeScript ~ TS 面向对象编程 ⑧

作者 : SYFStrive 博客首页 : HomePage 📜: TypeScript ~ TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &…

6. Redis缓存设计与性能优化

分布式缓存技术Redis 1. 多级缓存架构2. 缓存设计2.1 缓存穿透2.2 缓存失效(击穿)2.3 缓存雪崩2.4 热点缓存key重建优化2.5 缓存与数据库双写不一致 3. 开发规范与性能优化3.1 键值设计3.1.1 key名设计3.1.2 value设计 3.2 命令使用3.3 三、客户端使用 4. 系统内核参数优化 本文…

3-2 Named tensors

这里有一张图像img_t 彩色图像可以看作一个矩阵,只是矩阵中的每一个点不是一个值,而是包含3个值的数组,这3个值就是RGB值 我们给它随机化为一个形状为 [3, 5, 5] 的三维张量img_t img_t torch.randn(3, 5, 5) # shape [channels, rows, co…

数据库是如何工作的

数据库是如何工作的 注: 本文翻译自db_tutorial. 数据库计算机世界的一个基础软件,要想深入了解数据库,就不得不思考如下几个问题: 数据以什么格式保存?(在内存和磁盘上)它何时从内存移动到磁…

永磁同步电机的矢量控制PMSM仿真(matlab仿真与图像处理系列第一期)

永磁同步电机(Permanent Magnet Synchronous Motor, PMSM) PMSM具有高效率、高功率密度和快速响应等特点,在现代工业中得到了广泛应用。而矢量控制是一种广泛应用于永磁同步电机的高精度控制方法,它能够实现永磁同步电机的快速、准确、稳定的运行。 矢量控制 矢量控制的…

Android自定义View合集

文章目录 自定义QQ步数QQ计步效果分析自定义View分析的常用步骤自定义属性获取自定义属性画外圆弧画内圆画文字增加动画让其动起来 自定义评分控件RatingBar自定义评分View效果分析自定义属性获取自定义属性重写onMeasure()方法画出对应数量的星星触摸事件处理 自定义酷狗侧滑菜…

Ubuntu设置无线wifi的静态IP

安装 net-tools sudo apt install net-tools 输入ifconfig查看当前网络ip地址&#xff1a; pulsarpulsar:~$ ifconfig docker0: flags4099<UP,BROADCAST,MULTICAST> mtu 1500inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255ether 02:42:02:8c:87:a…

Linux下使用Mysql数据库忘记密码问题解决

​ 方法1查看初始化密码进行登录&#xff1a; 查看mysql的初始密码 在rootlocalhost后面的就是mysql初始的密码&#xff0c;以上图为例 初始密码则为&#xff1a;ukehBfivW1 方法2直接跳过数据库密码验证&#xff1a; 1、用vi指令进入mysql配置文件/etc/my.cnf并修改 在最后…

jmeter的web接口测试

目录 前言&#xff1a; 一、安装Jmeter 二、添加HTTP接口测试 三、添加新的POST请求 四、添加断言 前言&#xff1a; 使用JMeter进行Web接口测试是一种常见的应用场景。 一、安装Jmeter 二、添加HTTP接口测试 我们的所以工具都会在Jmeter工具中完成&#xff0c;接来就…

python爬虫之Scrapy框架--测试调试--保存数据

目录 ScrapyShell 启动ScrapyShell 基本方法 注意 保存数据到文件 方法一 使用python原生方式保存 方法二 使用Scrapy内置方式 方法三 Item Pipeline的使用 功能 ScrapyShell ScrapyShell是Scrapy框架提供的一个交互式的开发工具&#xff0c;用于调试和测试爬虫&…

数学建模-数据的处理

MATLAB数学建模方法与实践&#xff08;第3版&#xff09;——读书笔记 数据的准备数据获取数据处理缺失值处理噪音过滤数据集成数据归约数据变换标准化离散化 数据统计基本描述性统计分布描述性统计 数据可视化数据降维主成分分析&#xff08;PCA&#xff09;相关系数降维 数据…

K8S 使用(1)- 基本命令

根据上文完成部署k8s后&#xff0c;我们需要了解如何使用k8s.首先我们需要了解如何使用K8S的一些基础命令及主要概念。 尚不清楚如何部署的请参考&#xff1a;单master部署简要步骤 如果您熟悉了k8s基本命令&#xff0c;可以跳过此章节。 目录 先看一下这张图 2. 节点 nod…

2.2、IOC容器的实现流程

​一、类图 二、容器的实现接口 Spring容器并不是只有一个。Spring自带多个容器实现&#xff0c;可以归位两种不同的类型。 &#xff08;1&#xff09;Bean工厂&#xff08;由org.springframework.beans.factory.BeanFactory接口定义&#xff09;是简单的容器实现工厂&#x…

数学内容的概述

前言 作为一名文科生&#xff0c;学习编程最大的阻碍莫过于数学知识。 学习数学的必要性 跟开发APP和后台服务器相比&#xff0c;机器学习、深度学习需要大量的数学知识。 数据处理和清洗&#xff1a;数据分析涉及大量的数据处理和清洗工作&#xff0c;需要掌握基本的数学概…

linux系统LAMP架构

文章目录 一、LAMP简介与概述二、LAMP各组件主要作用1.构建LAMP平台顺序 三、编译安装Apache httpd服务1.将所需软件安装包下载到/opt目录下解压2.移动两个文件并改名3.安装依赖环境4.编译安装5.做软连接&#xff0c;使文件可执行6.优化配置文件路径&#xff0c;并把httpd服务的…