【数据结构】基本概念和术语

news2024/12/23 14:06:55

🦄个人主页:修修修也

🎏所属专栏:数据结构

⚙️操作环境:Visual Studio 2022

085216568f064282af432366d11a1ff9.gif


🌳1.数据

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合.是计算机程序加工的"原料".

 数据不仅包括整型,实型等数值类型,还包括字符,声音,图像,视频等非数值类型.

也即,数据其实就是符号,而这些符号必须具备两个前提:

  1. 可以输入到计算机中.
  2. 能被计算机程序处理.

对于整型,实型等数值类型的数据,可以进行数值计算.

对于字符数据类型,就需要进行非数值的处理.像声音,图像,视频等其实是可以通过编码的手段变成字符数据来处理的.


🌳2.数据元素

数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体进行考虑和处理.

再用图片举例一下:

c62cae136463412da8c64f4a5bc7d48e.png

图中的①②③④⑤⑥⑦⑧⑨以及ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿ,每一个都被称为一个数据元素.

我们再举一点更具体的例子:

如:在对弈问题中,计算机操作的对象是对弈过程中可能出现的棋盘状态——称为格局.

如下图(a)所示就是井字棋的一个格局,而(a)可以派生出5个格局,如下图(b)所示:2f6e11dbd1ec4dd69e734b07f2e646bd.png

而从(b)中的每一个新的格局又可派生出4个可能出现的格局.因此,若将从对弈开始到结束的过程中所有可能出现的格局都画在一张图上,则可得到一棵倒长的"树".

(b)抽象为数据结构,图示如下:

bc233e1431414ac3b468debf8b19a097.png

图中的ⒶⒷⒸⒹⒺⒻ就是6个数据元素,对应到井字棋中,也即一个格局就是一个数据元素.


🌳3.数据项

数据项:一个数据元素可以由若干个数据项组成.

比如,通讯录中每个人及他的所有信息是一个数据元素,而姓名,年龄,性别,地址,电话等就被称为数据项.

如:

3d1545ec7c9c421fb58e4bbff01bd882.png

注意:数据项数据不可分割的最小单位.

数据项是数据的最小单位,但真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点.

就像我们讨论一部电影时,是讨论这部电影角色这样的"数据元素",而不是针对某个角色的姓名或者年龄这样的"数据项"去研究分析.


🌳4.数据对象

数据对象:是性质相同的数据元素的集合,是数据的子集.

简单阐述一下性质相同是什么意思:

数据元素具有相同数量和类型数据项.

还拿刚才的通讯录举例,通讯录中的每个人都具有6个相同的数据项,分别是:序号,姓名,年龄,性别,地址,电话.

ca7a355c0c354d1e90f210f90bb843af.png

因此,"张三","李四","王五"这三个数据元素组成的集合称为数据对象.

因为数据对象是数据的子集,在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况下,我们都将数据对象简称为数据.


🌳5.数据结构

结构,简单的理解就是关系,

比如生态系统结构,就是说生物与非生物相互作用结合而成的结构有序的系统.f8e8014f4c394c1c8d74b627805b97d7.png

严格点说,结构是指各个组成部分相互搭配和排列的方式.

现实生活中,不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称为结构.

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合.

在计算机中,数据元素并不是孤立,杂乱无序的,而是具有内在联系的数据集合.

数据元素之间存在的一种或多种特定关系,也就是数据的组织形式.

为了编写出一个"好"的程序,必须分析待处理对象的特性各处理对象之间存在的关系.

这便是我们学习和研究数据结构的意义所在.


结语:

本节我们一起学习了数据结构的基本概念和术语,在数据结构绪论章中,我们还将一起探讨其他三节的内容,分别是:什么是数据结构,逻辑结构与物理结构以及抽象数据类型,有兴趣的朋友可以直接点击下方链接跳转至相应博客:

                              相关文章推荐

                【数据结构】什么是数据结构?

                【数据结构】基本概念和术语

                【数据结构】逻辑结构与物理结构


c33fa37844af4c118cb9a624942e4bde.jpeg


数据结构绪论篇思维导图:

7714b2d561164b478c665dbbedaaee65.png

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

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

相关文章

数据库基础理论

什么是数据库? 数据:描述事物的符号记录,可以是数字、文字、图形、图像、声音、语言等,数据有多种形式,他们都是可以经过数字化后存入计算机。 数据库:存储数据的仓库,是长期存放在计算机内、…

tensorflow损失函数

tf.losses.mean_squared_error(label, predict) 对label类型并不要求 >>>y_int tf.convert_to_tensor([1,0,1], tf.int32) >>>y tf.convert_to_tensor([1,0,1], tf.float32) >>>y_pred tf.convert_to_tensor([0.2,0.3,0.4], tf.float32) >&…

探索 GO 项目依赖包管理与Go Module常规操作

探索 GO 项目依赖包管理与Go Module常规操作 文章目录 探索 GO 项目依赖包管理与Go Module常规操作一.Go 构建模式的演变1.1 GOPATH (初版)1.1.1 go get 1.2 vendor 机制(中版)1.3 Go Module(最新版) 二.创…

xss原理分析

插入法,弹窗法,事件法 绕过HttpOnly通过找到phpinfo的方式,可以看到cookie

C#,数值计算——Normaldev_BM的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Normaldev_BM : Ran { private double mu { get; set; } private double sig { get; set; } private double storedval { get; set; } public Normaldev_BM(double mmu…

牛客网解题之矩形覆盖

10.2 矩形覆盖 题目链接 牛客网 题目描述 我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法? 解题思路 当 n 为 1 时,只有一种覆盖方法: 当 …

Unity 制作登录功能02-创建和链接数据库(SQlite)

国际惯例:先看效果 1.SQlite是一种嵌入型数据库 在Unity开发游戏时使用SQLite有多种原因,以下是其中一些主要原因: 嵌入式数据库:SQLite是一个嵌入式数据库引擎,这意味着它不需要单独的服务器进程。这使得使用SQLite非…

TCP/IP协议,IPV4,IPV6,为什么国家大力倡导IPV6的发展

简单回顾一下TCP的特点 TCP是可靠性,UDP是负责效率,那么如何基于UDP实现可靠传输 本质还是考察TCP 目录 TCP/IP协议栈💛 那么假如IP地址不够用怎么办呢?NAT机制💙 IP地址的介绍💜 TCP/IP协议栈&#…

腾讯mini项目-【指标监控服务重构】2023-08-28

今日已办 分工 测试 - 谢雨晨、郑兆隆将1的测试结果记录整理为一个表格,列有:平均内存、最大内存、95内存、cpu的这些等等 - 邓烨钒HyperScan和官方正则库的benchmark对比 - 张锐添PPT制作 - 其他人灵活调动 进度 trace上报:jaeger-colle…

【星穹杂谈】为什么寰宇蝗灾难到折磨玩家却令玩家一致好评?

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,今天咱们不聊技术,来聊聊一些游戏里我个人觉得有趣的东西,今天想和大家聊聊关于星穹铁道这个版本新出的活动寰宇蝗灾为什…

题目 1067: 二级C语言-分段函数 sqrt、fabs、pow

一个分段函数&#xff0c;返回为double值&#xff0c;保留两位小数。 输入5 输出15.00 这题不难&#xff0c;重要的是sqrt(),fabs(),pow(n,2); cmath或者math.h里有的sqrt() 平方根函数&#xff0c;fabs()绝对值函数&#xff0c;pow(n,5); nの五次方函数 #include<iostrea…

【数据结构】泛型

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 泛型 1. 包装类1.1 基本数据类型和对应的…

【Javascript保姆级教程】Javascript数据类型和算术运算符

文章目录 前言一、JavaScript数据类型1.1 数字&#xff08;Number&#xff09;1.2 字符串&#xff08;String&#xff09;1.3 布尔&#xff08;Boolean&#xff09;1.4 数组&#xff08;Array&#xff09;1.5 类(Object) 二、算术运算符2.1 加法&#xff08;&#xff09;2.2 减…

单目3D目标检测——SMOKE 环境搭建|模型训练

本文分享SMOKE最新的版本的环境搭建&#xff0c;以及模型训练&#xff1b;环境关键库版本&#xff1a;pytorch 1.12.0、CUDA 11.3、cudnn 8.3.2、python 3.7、DCNv2。 目录 1、docker 获取Nvidia 镜像 2、安装Conda 3、创建SMOKE环境 4、编译SMOKE环境 5、下载kitti 3D目标…

Springboot+vue的校园资产管理系统(有报告),Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的校园资产管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的校园资产管理系统&#xff0c;采用M&#xff…

让Pegasus天马座开发板实现超声波测距

在完成《让Pegasus天马座开发板用上OLED屏》后&#xff0c;我觉得可以把超声波测距功能也在Pegasus天马座开发板上实现。于是在箱子里找到了&#xff0c;Grove - Ultrasonic Ranger 这一超声波测传感器。 官方地址: https://wiki.seeedstudio.com/Grove-Ultrasonic_Ranger 超声…

使用postcss-pxtorem插件实现px转换rem

1.下载postcss-pxtorem(其他插件按需下载自行配置)并在package.json同级目录下新建postcss.config.js文件: export const defaultHtmlFontSize 37.5 export default {plugins: {autoprefixer: {overrideBrowserslist: [Android > 4.0, iOS > 7],},postcss-pxtorem: {//…

tensorrt获取输入输出

利用Netron打开onnx&#xff0c;右边名字&#xff1a; int input_index engine->getBindingIndex("inout1.1");int output_index engine->getBindingIndex("191");

NSSCTF做题

[第五空间 2021]WebFTP 打开题目 发现是登录的界面 用admin和password试一下发现不行 用dirsearch扫一下 发现了git泄露 但是用githack下载不下来文件 去网上查了一下webftp 发现是一个在线php文件管理系统 WebFTP——在线FTP工具:强大的PHP在线文件管理系统-時日 在这篇博客…

CentOS7平台命令安装Anaconda3、配置Python3开发环境

要在 CentOS 7 上安装 Anaconda3&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 下载 Anaconda3 安装包&#xff1a; 首先&#xff0c;访问 Anaconda 官方网站以获取最新版本的 Anaconda3 安装包的下载链接。可以使用 wget 命令来下载安装包。请确保选择适用于 Cent…