数据结构 - 概述及其术语

news/2024/9/23 15:41:05/文章来源:https://www.cnblogs.com/hugogoos/p/18427128

经过上一章节《数据结构与算法之间有何关系?》的阐述,相信大家对数据结构多少有了点了解,今天我们将进入数据结构的正式学习中。

在计算机科学中,数据结构是一种数据管理、组织和存储的格式。它是相互之间存在一种或多种特定关系的数据元素的集合。

在计算机中一个静态数据是没有灵魂的,只有实际使用起来才有意义,而对于一个数据使用必然会面临三个问题:怎么存储,用什么承载,怎么处理。而这不正好和存储、组织、管理所对应吗。这也正是数据结构所研究关注的三要素。

 

01、三要素

1、物理(存储)结构

怎么存储是指数据最终怎么存储在计算机磁盘上的,这也是我们经常说的物理结构也叫存储结构。

就如同我们收纳内务一样,可能有的人收纳的整整齐齐,按照一定顺序整理,有的人收纳的这一块那一块,感觉毫无章法。而我们也可以根据数据在内存中是否为连续地址存储分为顺序存储和非顺序存储,常见的顺序存储有顺序存储结构,非顺序存储有链式存储结构、索引存储结构和散列存储结构。

 

2、逻辑结构

用什么承载是指数据从计算机磁盘上取出后,要放哪呢或者说用什么工具把它送给后续的应用使用呢。而这个承载体在我们高级语言就是一个类,一个数据对象,其根源就是我们现在说的数据结构,而此时我们关注的是这个类或这个数据对象数据是怎么组织的,是一对一、一对多、多对多亦或其他关系,而这种关系是纯粹的数据之间的关系无关数据实际存储情况就是逻辑上的一种关系,因此称为逻辑结构。

同样的逻辑结构也有顺序之分,可以分为线性结构与非线性结构。线性结构有数组、链表、栈、队列等,非线性结构有树结构、图结构等。

 

3、数据运算

怎么处理指当数据已经从计算机磁盘上取出后,怎么加工使用,也就是数据运算,我们可以根据实际业务需求对数据进行各种加工处理,最得到我们想要的结果,这是处理就是我们常说的增删改查排序等操作。

如果说物理(存储)结构是数据结构的家,逻辑结构就是数据结构的骨架,那么数据运算就是数据结构的灵魂,使得数据可以真正产生价值。

02、术语

1、数据

数据是信息的载体,是所有可以录入到计算机中并且可以被识别处理的数字、字符、符合等合集。包括但不限于整数、小数、字母、符号、图片、音频、视频等。

2、数据项

数据项是数据的最小单位,比如我们在设计学生实体的时候定义学号、姓名、年龄等都是数据项。

3、数据元素

我们实际使用中经常会把多个数据项组合在一起,作为一个整体进行统一处理,这样的组合就形成了数据的基本单位数据元素。

比如学生表中每一行数据就是一个数据元素。

4、数据对象

数据对象是指有特定属性和操作的数据的集合。数据对象由多个数据元素组成,数据元素是数据对象的实例。

5、抽象数据类型

抽象数据类型是一个定义,它是抽象了数据的特性及行为并做了相关定义,但是没有具体实现。

比如说栈作为一个抽象数据类型,定义如“入栈、出栈”等操作,但是具体底层是使用数组实现还是链表实现,使用者并不关心。

后面我们继续将对:数组、链表、跳表、栈、队列、树、堆、散列、图九类数据结构进行深入学习,感兴趣的可以持续关注。

:测试方法代码以及示例源码都已经上传至代码库,有兴趣的可以看看。https://gitee.com/hugogoos/Planner

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

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

相关文章

DM(达梦数据库基本操作)

1、创建用户 XTF 密码为 XTF123321 SQL> CREATE USER XTF IDENTIFIED BY "XTF123321";2、权限 (1)--给用户建表权限 SQL> GRANT CREATE TABLE to XTF;总共1个语句正依次执行...[执行语句1]: GRANT CREATE TABLE to XTF; 执行成功, 执行耗时7毫秒. 执行号:10322…

PWA入门:手把手教你制作一个PWA应用

根目录创建 manifest.json{"name": "我是pwa","short_name": "pwa是我","start_url": "/", //启动页面,如果首页是https://www.abc.com/,则直接用“/”即可"display": "standalone","ba…

南沙C++信奥老师解一本通题 1281:最长上升子序列

​【题目描述】一个数的序列bibi,当b1<b2<...<bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,...,aN),我们可以得到一些上升的子序列(ai1,ai2,...,aiK),这里1≤i1<i2<...<iK≤N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如…

css使用@media响应式适配各种屏幕的方法示例

定义和使用 使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。 @media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。 PC端设备…

多智能体协同控制(1)

引言 多智能体系统协同控制算法起源于计算机领域关于分布式计算的研究,后由于数学家们的强势加盟,控制领域的研究一度占领高地。随着人工智能的发展,以多智能体强化学习为代表作的计算机领域专家又重回巅峰。 目前,每年多智能体相关的论文的都浩如烟海,成就了一批手持屠龙…

Axure原型设计:多层级动态表格

多层级表格又成为树形表格,是在后台常用的一种表格形式,当表格数据存在多层级关系是,可以通过多层级表格,从而更加清晰的呈现数据内容,帮助人们更好地理解和分析数据之间的关系,从而更加有效地传递信息。 所以今天作者就教大家怎么在Axure里制作多层级动态表格,包括展开…

frp内网穿透 宝塔部署服务端、客户端教程

宝塔部署教程链接:https://blog.csdn.net/m0_57944649/article/details/140693257 frp官方下载链接:https://github.com/fatedier/frp/releases一、部署服务端1、上传好文件后解压2、进入解压好了的文件夹“frp_0.58.1_linux_amd64”中,找到文件“frps.toml”,双击打开: …

建立数据库连接时出现错误:原因与解决方案

建立数据库连接时出现错误的原因可能有很多,以下是一些常见的原因及其解决方案: 原因登录信息错误:账号、密码、服务器名称或数据库名称不正确。网络问题:客户端与数据库服务器之间的网络连接不稳定或中断。数据库服务未启动:数据库服务没有运行,或者在尝试连接时服务停止…

数据库连接失败的解决方法有哪些

当遇到数据库连接失败的情况时,可以按照以下步骤进行排查和解决:检查数据库服务状态:确认数据库服务是否已启动并运行正常。可以使用阿里云控制台的服务监控工具或通过SSH登录服务器,使用命令行工具(如service mysqld status)来检查服务状态。验证网络连接:确保你的应用…

数据库常见十大错误_数据库十大报错语句

数据库操作时可能会遇到各种错误,这些错误通常是由不同的原因引起的,比如语法错误、连接问题、权限问题等。下面是数据库操作中常见的几种错误类型及其解决思路:连接失败:错误信息可能包括“无法连接到主机”、“连接被拒绝”等。检查数据库服务是否启动、网络连接是否正常…

阿里云主机数据库链接失败怎么回事

阿里云主机数据库连接失败的问题可能有多种原因,这里列举了一些常见的原因及解决办法:网络问题:确认你的网络连接是否正常。尝试使用其他设备或网络连接来验证问题是否出在网络方面。防火墙设置:确保防火墙没有阻止数据库连接。可以尝试临时禁用防火墙,或添加相应的规则来…