简单介绍数据结构的基本概念

数据结构的基本概念

常用术语

数据

数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。例如:整数、字符串、图形、图像、声音和动画等

数据元素

数据元素(Data Element)是数据的基本单位,有时也可被称为元素、记录等。

在计算机中通常作为一个整体进行考虑和处理,数据元素用于完整地描述一个对象,如学生信息表中的一名学生记录

数据项

数据项(Data Item)是组成数据元素的、有独立含义的、不可分割的最小单位。例如,课程表中的课程号、课程名等

数据对象

数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…}

数据结构

数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合,也可以说数据结构是带“结构”的数据元素的集合,“结构”是指数据元素之间存在的关系

数据结构包括逻辑结构存储结构两个层次。

逻辑结构

数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

数据的逻辑结构有两个要素:

  • 数据元素
  • 关系:关系是指数据元素间的逻辑关系

根据数据元素之间关系的不同特性,通常有四类基本结构,如图所示,其复杂程度依次递进

  • 集合结构:数据元素之间除了“属于同一集合”的关系外,别无其他关系。例如,确定一个员工是否为销售部员工,只需将销售部看作一个集合结构

    在这里插入图片描述

  • 线性结构:线性结构作为最常用的数据结构,其特点是数据元素只按先后次序连接,数据元素之间存在一对一的关系。例如,将学生的基本信息数据按照学号的先后顺序进行排列,将组成一个线性结构,如线性表、栈、队列和字符串等

    在这里插入图片描述

  • 非线性结构:非线性结构,数学用语,其逻辑特征是一个数据元素可能有多个直接前驱和多个直接后续。其中对于这种数据结构中的任意一个数据元素;与它相邻且在它之前的数据元素称为该数据元素的直接前驱;对于该结构中任意一个数据元素,与它相邻且在它之后的数据元素称为该数据元素的直接后续。非线性结构可分为树结构和图结构

    • 树结构:树结构的数据元素是分层次的纵向连接,数据元素之间存在一对多的关系。例如,经理管理多个组长,每位组长管理多个员工,这就构成树结构

      在这里插入图片描述

    • 图结构或网状结构:图结构或网状结构的数据元素的有各种各样的复杂连接,数据之间存在多对多的关系。例如,一门课程同时有若干个学生选修,一个学生可以同时选修多门课程,从而构成图结构或网状结构

      在这里插入图片描述

存储结构

数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构.

数据元素在计算机中有两种基本的存储结构

  • 顺序存储结构:顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述
  • 链式存储结构:为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后续元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型

顺序存储结构要求所有的元素依次存放在一片连续的存储空间中。链式存储结构无须占用一整块存储空间

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ(四):功能特性——备份

1 消息发送重试和流控机制 本节介绍Apache RocketMQ的消息发送重试机制和消息流控机制 1.1 消息发送重试机制 1.1.1 重试基本概念 Apache RocketMQ 客户端连接服务端发起消息发送请求时,可能会因为网络故障、服务异常等原因导致调用失败。为保证消息的可靠性&…

华为配置旁挂二层组网直接转发示例

配置旁挂二层组网直接转发示例 组网图形 图1 配置旁挂二层组网直接转发示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户通过WLAN接入网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff…

关于Sora的一些紧迫问题...

OpenAI Sora 概述 OpenAI最新的创新,Sora,在人工智能领域开辟了新的天地。Sora是一个文本到视频的扩散模型,可以将文本描述转化为逼真的视频内容。它解决了一个重大的技术挑战,即在视频中保持主体的一致性,即使它们暂…

Vue3快速上手(八) toRefs和toRef的用法

顾名思义&#xff0c;toRef 就是将其转换为ref的一种实现。详细请看&#xff1a; 一、toRef 1.1 示例 <script langts setup name"toRefsAndtoRef"> // 引入reactive,toRef import { reactive, toRef } from vue // reactive包裹的数据即为响应式对象 let p…

SNAT和DNAT

1.SNAT SNAT原理与应用: SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) SNAT原理:源地址转换&#xff0c;根据指定条件修改数据包的源IP地址&#xff0c;通常被叫做源映谢 SNAT转换前提条件: 1.局域网各主机已正确设置IP地址、子…

跳槽换行找工作,有哪些是你必须知道的事?

跳槽两个字&#xff0c;因为其生动、形象、幽默&#xff0c;很快就代替了换工作、换单位之类的词语。但是&#xff0c;跳槽是具有比较大的风险的。在跳槽时&#xff0c;很多人做不好成本分析&#xff0c;有些时候甚至会给原公司带来惨重的损失&#xff0c;给自己带来很大的负面…

IDEA实现序列化时如何自动生成serialVersionUID

实现步骤&#xff1a;1.安装GenerateSerialVersionUID插件 2.点击idea左上角File -> Settings -> Editor -> Inspections -> 搜索 Serialization issues &#xff0c;找到 Serializable class without ‘serialVersionUID’ ->打上勾&#xff0c;再点击Apply-&…

数据库设计、JDBC、数据库连接池

数据库设计 数据库设计概念 数据库设计就是根据业务 系统的具体需求&#xff0c;结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。建立数据库中的表结构以及表与表之间的关联关系的过程。有哪些表?表里有哪些字段?表和表之间有什么关系? 数据库设计的步骤…

SpringBoot助力!轻松实现微信模版消息推送

本篇文章的主题是 如何通过springboot来实现微信的模版消息推送 实现效果&#xff1a; 在当今的信息化时代&#xff0c;微信作为国人最为常用的通讯工具之一&#xff0c;已经不仅仅是一个简单的社交应用&#xff0c;更是连接人与服务、人与信息的桥梁。企业微信模板消息作为…

Stable Diffusion系列(六):原理剖析——从文字到图片的神奇魔法(潜空间篇)

文章目录 LDM概述原理模型架构自编码器模型扩散模型条件引导模型图像生成过程 实验结果指标定义IS&#xff08;越大越好&#xff09;FID&#xff08;越小越好&#xff09; 训练成本与采样质量分析不带条件的图片生成基于文本的图片生成基于语义框的图片生成基于语义图的图片生成…

未激活的Windows 11/10虽能用,但有不少的缺点和局限性

由于微软在内部更改了一些关于Windows激活的内容,现在用户可以永远使用Windows 11和10,而无需使用购买的许可证密钥进行激活。如果你打算这样做,在最终确定主意之前,你必须知道未激活的Windows 11和Windows 10的缺点和局限性。 什么是未激活的Windows 11/10 流行的计算机操…

FPGA 高速接口(LVDS)

差分信号环路测试 1 概述 LVDS&#xff08;Low Voltage Differential Signalin&#xff09;是一种低振幅差分信号技术。它使用幅度非常低的信号&#xff08;约350mV&#xff09;通过一对差分PCB走线或平衡电缆传输数据。大部分高速数据传输中&#xff0c;都会用到LVDS传输。 …

UE5 C++ UENUM 和 USTRUCT

一.首先在APawn里声明 UENUM 和 USTRUCT。UENUM 有两种定义方式 一种是使用命名空间&#xff1a; 还有是继承uint8&#xff1a; 通过申明class类 别名来替代 USTRUCT的定义 上面的第二种有类似但仍然有很多的差异&#xff1a; 首先要有GENERATED_USTRUCT_BODY()这个函数 并且…

【ansible】认识ansible,了解常用的模块

目录 一、ansible是什么&#xff1f; 二、ansible的特点&#xff1f; 三、ansible与其他运维工具的对比 四、ansible的环境部署 第一步&#xff1a;配置主机清单 第二步&#xff1a;完成密钥对免密登录 五、ansible基于命令行完成常用的模块学习 模块1&#xff1a;comma…

SSM项目启动错误[main] ERROR org.springframework.boot.SpringApplication

[main] ERROR org.springframework.boot.SpringApplication - Application run failed org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 这个错误是由于Spring Boot应用程序在解析YAML文件时遇到了字符编码问题。java.ni…

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_4

《剑指Offer》笔记&题解&思路&技巧&优化_Part_4 &#x1f60d;&#x1f60d;&#x1f60d; 相知&#x1f64c;&#x1f64c;&#x1f64c; 相识&#x1f622;&#x1f622;&#x1f622; 开始刷题1. LCR 148. 验证图书取出顺序——栈的压入、弹出序列2. LCR 14…

05.QT坐标系

1. 坐标系原点 坐标系原点就是屏幕/窗口的左上角&#xff0c;X向右增长&#xff0c;Y向下增长。 2.设置控件位置 设置控件位置&#xff0c;就相当于是需要指定控件的坐标&#xff0c;对于该控件来说&#xff0c;其坐标原点是其父窗口/父控件的左上角。 设置方法就是通过控件的…

ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能

适用ROG枪神8系列笔记本型号&#xff1a; G614JIR、G614JVR、G634JYR、G634JZR G814JIR、G814JVR、G834JYR、G834JZR 链接&#xff1a;https://pan.baidu.com/s/1tYZt6XFNC2d6YmwTbtFN7A?pwd3kp8 提取码&#xff1a;3kp8 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主…

OpenAI的Sora即将开放使用,普通人能抓住哪些赚钱机会?

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

引入成熟的Pytest自动化测试框架

虽然我们能使用脚本编写自动化测试框架&#xff0c;但没有必要重复找车轮子&#xff0c;引入成熟的自动化测试框架即可&#xff0c; Pytest是目前最成熟、功能最全面的Python测试框架之一&#xff0c;简单灵活、易于上手&#xff0c;可完全兼容其他测试框架如unitest&#xff…