《数据结构》---术语篇

news2024/11/10 19:16:31

 

目录

前言:

一.术语

1.1数据

1.2数据结构

1.3逻辑结构和物理结构

二.数据类型和抽象数据类型

​​​​​​​


❤博主CSDN:啊苏要学习

    ▶专栏分类:数据结构◀

  学习数据结构是一件有趣的事情,希望读者能在我的博文切实感受到,数据之间存在的关系,在对数据元素进行操作的时候,能心中有数,脑中有画! 

-----------------------------------------------------------------------

前言:

  数据结构呢,常常和算法结合在一起,它们就像双星一样成对存在!是想到一个就自然想起另一个的关系。想学好数据结构,首先是需要掌握一门语言,一些基本的知识要懂得运用;其次就是了解消化知识后,下去一定要动手敲代码,没有看会的代码,只有敲会的代码。最后就是,学数据结构,伴随我们整个学习过程的就是不断刷题!无论何时何地,刷题,刷题,再刷题,思考,思考,再思考。这节我们先来讲数据结构里常见的术语,好让我们理解后面我们提到的对象。

一.术语

1.1数据

  数据项并不是我们主要研究的,在计算机中,我们主要对数据元素进行操作和讨论数据对象是数据元素的集合,它是数据的子集。在我们使用计算机处理数据的时候,通常这些数据都是由相同性质的数据元素组成的,所以为了符合我们习惯上的叫法,我们将数据对象简称为数据。什么意思呢?就是,数据是一组相同类型的数据元素,处理数据,就是在处理这种类型的一组数据元素。

  了解完数据的一些概念,那我们来了解数据结构是什么。

1.2数据结构

  我们知道,结构是一种具有特定关系的组合形式那么数据结构,就是数据元素之间彼此间具有关系和联系的组合

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

  什么是特定关系呢?我们来看到数据结构中的逻辑结构

1.3逻辑结构和物理结构

  逻辑结构是指数据对象中的数据元素之间的相互关系。当一个数据对象里的数据元素之间彼此没有交流,它们唯一具有的相同的属性,就是同属于一个集合,这就是集合结构。什么是线性结构、树结构、图结构,我们通过举例子来说明,博主举得例子大概率不贴切现实,望读者谅解。

故事:

  小明是一个在校大学生,初入大学,一切都很陌生,在新生班会上,还没开始自我介绍,大家都互不认识,对于同一个班级里的学生来说,他们仅仅是同处一个班上的关系,也就是集合结构

  导师发言完,大家纷纷做自我介绍,这时,一个好看的女同学引起了小明的注意,小明单纯很喜欢她,小明单方面记住了小美,可惜的是,在自我介绍的后半部分,小美也像小明一样,喜欢上一个帅帅的男生,巧了,也是单方面认识,这就是线性结构啦

  树性结构:树很像一个组织结构,数据元素之间存在一种一对多的关系。

  图形结构:图形结构的数据元素是多对多的关系

  将每个元素看成一个结点,用圆圈表示。元素之间的连线是表示结点之间的逻辑关系

  以上就是四种逻辑结构啦!集合结构我们不研究,我们研究的是线性结构、树性结构、图形结构。接下来讲的是,逻辑结构是以何种形式存储在内存中,也就是物理结构

  物理结构:是指数据的逻辑结构存储在计算机的形式。

  换句话说就是,存储在计算机内存里的东西,如何表示数据之间的逻辑结构,可能读者还是有点懵懵的,那我们再往下看。物理结构有两种,一种是顺序存储结构,另一种是链式存储结构

  顺序存储结构:是把数据元素放在地址连续的内存单元上,在物理结构上和逻辑上是一致的。数组就是一种表示顺序存储的实现,数组元素类型相同,连续存放

  链式存储结构:是把数据元素放在任意存储单元,可能会有巧合部分连续,但总体上,元素是分布在不同位置的(不是连续的)。那么如何表示它们之间的关系呢,我们使用结构体和指针来串起这些分散在各地的元素

二.数据类型和抽象数据类型

  数据类型是一组值和定义再这些值上的操作的集合。比如整型int,我们可以知道3、5、8、10等整数值都是整型,能对这些值进行加法、减法、除法等等操作。

  抽象是抽出事物具有的普遍性的本质抽象是抽出了问题的本质,忽略了细节实现。是我们的一种思考方式,掌握抽象,理解抽象,往往能让我们看透事物的内在,而非止于表象。就好比,这里有需要实现加法的功能,可以直接用操作符+进行操作,也可以分装成一个加法函数等等,实质上就是要把一个数加到另一个数上,这个实现我们不考虑cpu开关多少次,不考虑不同机型,不同平台等,只考虑本质,加

  抽象数据类型:抽象+数据类型,就是对数据类型的值,和定义在这些值上的操作进行抽象看待。这样我们就不必考虑其实现的细节,而只关注数学上的模型和在模型上的一组操作。

-----------------------------------------------------------------------

  本文篇文字型,读来或许枯燥无味,旨在让读者了解有关数据的一些术语,在后期的不断学习中,读者也会不自觉使用这些术语来描述数据结构相关的知识,因为它是简洁且实用的。

结语:希望读者读完能有所收获!对数据结构有进一步的认识!✔

  读者对本文不理解的地方,或是发现文章内容上有误等,请在下方评论留言告诉博主哟~,也可以对博主提出一些文章改进的建议,感激不尽!最后的最后!

  ❤求点赞,求关注,你的点赞是我更新的动力,一起进步吧。

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

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

相关文章

Numpy从入门到精通——随机生成数组|特定生成数组|规则生成数组

这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快! 这一篇介绍《…

Qt内存管理及泄露后定位到内存泄漏位置的方法

Qt内存管理机制 Qt使用对象父子关系进行内存管理。在创建类的对象时,为对象指定父对象指针。当父对象在某一时刻被销毁释放时,父对象会先遍历其所有的子对象,并逐个将子对象销毁释放。 Qt内存管理代码示例 QLabel *label new QLabel;这里…

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别

文章目录 先上结论C中stringJAVA中String回顾结论 参考文章:这里;这里;这里 先上结论 C中的string类型可以使用和!来判断两个字符串的值是否相等;而JAVA不行,JAVA中和!是用来判断两个字符串的地址是否相同&#xff08…

c++学习之类与对象3

目录 成员变量和函数的存储 this指针 this指针的工作原理 this指针的应用 const修饰的成员函数 友元 友元的语法 1.普通全局函数成为类的友元 2.类的某个成员函数作为另一个类的友元 整个类作为另一个类的友元 运算符重载 1 运算符重载的基本概念 2 重载加号运算符…

MySQL数据库学习笔记之存储引擎

存储引擎 MySQL体系结构 连接层 最上层是一些客户端和连接服务,主要完成一些类似于连接处理、授权认证、以及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口&am…

【JavaScript】6.DOM

文章目录 DOM1. 简介2. 获取元素2.1 根据 ID 获取2.2 根据标签名获取2.3 通过 HTML5 新增的方法获取2.4 特殊元素获取 3. 事件基础3.1 事件概述3.2 事件三要素3.3 执行事件步骤 DOM 1. 简介 文档对象模型(Document Object Model,简称 DOM)&…

web自动化测试框架落地实施全过程-测试环境搭建 (Selenium+Python)

一、什么是web自动化测试? Web自动化测试是指使用自动化工具模拟用户在Web浏览器中执行的操作,通过编写脚本来自动化执行测试用例,以验证Web应用程序的功能、性能和兼容性等方面的质量。其主要目的是降低测试成本和时间,并提高测试效率和准…

LDAP未授权漏洞验证

因为工作需要,这里验证了下LDAP未授权。 以下是收集到的资料,最后是具体使用!!!!! 更新 2)连接ad域有两个地址: ldap://http://XXXXX.com:389 和 ldap://http://XXXXX.…

算法的时间复杂度和空间复杂度(2)

计算斐波那契递归Fib的时间复杂度&#xff1f; long long Fib(size_t N) { if(N < 3) return 1; return Fib(N-1) Fib(N-2); } 因为递归先递推后回归&#xff0c;看起来规律像等比数列&#xff0c;也可以用错位相减法&#xff0c;因为斐波那契数列到第二项就不会再计算了&a…

传输层重点协议之【UDP协议】

1. UDP协议端格式 2. UDP的特点 2.1 无连接 知道对端的IP和端口号就直接传输&#xff0c;不需要建立连接 2.2 不可靠 没有任何的安全机制&#xff0c;发送端发送数据报后&#xff0c;如果因为网络故障数据报无法发送对方&#xff0c;UDP协议层也不会给应用层返回任何错误信…

第六章 Linux实际操作——实用指令

第六章 Linux实际操作——实用指令 6.1 指定运行级别6.2 找回root密码6.3 帮助指令6.3.1 man获得帮助信息6.3.2 help指令6.3.3 搜索引擎帮助更直接 6.4 文件目录类6.4.1 pwd指令6.4.2 ls指令6.4.3 cd指令6.4.4 mkdir 指令6.4.5rmdir指令删除空目录6.4.6 touch 指令6.4.7 cp 指令…

火山引擎边缘云,助力业务敏捷创新

[中国&#xff0c;上海&#xff0c;4 月 18 日]2023 春季火山引擎 FORCE 原动力大会正式举办。大会主论坛&#xff0c;火山引擎总裁谭待围绕云上增长三要素发表了重要演讲。在敏捷迭代专题中&#xff0c;谭待分享了火山引擎边缘云连接与计算无处不在的理念&#xff0c;并于现场…

【fluent udf】定义源项宏时,在迭代计算过程中UDM变量变inf、NAN、发散时如何解决?

一、问题背景 最近做的一个fluent仿真算例里用到源项宏&#xff0c;源项宏里用UDM定义了树脂固化度场。 在迭代计算的过程中&#xff0c;UDM的取值发散成了无穷大inf&#xff08;第一次计算取值是NAN&#xff09;&#xff0c;如下图所示。 由于每一次迭代计算过程中&#xf…

【嵌入式系统与入门】Day01 Arduino开发板

文章目录 1. Arduino概述1.1 是什么&#xff1f;1.2 分类1.3 组成1.4 电源 2. Arduino软件开发流程2.1 明确接口函数2.2 连接板子2.3 打开项目【或者自己编程序】2.4 选择板子类型2.5 选择通讯端口2.6 下载程序2.7. 编写程序代码——程序架构 3. 较常用的封装函数3.1 pinMode(p…

技术报告:Efficient and Effective Text Encoding for Chinese LLaMA AND Alpaca

技术报告&#xff1a;Efficient and Effective Text Encoding for Chinese LLaMA AND Alpaca IntroductionChinese LLaMAChinese AlpacaLora-Fine-tuning实验7Bpre- trainingInstruction-Tuning 13BPre-TrainingInstruct-Tuning Introduction 首先作者说了最近ChatGPT等模型在…

【SpringCloud】2、使用Nacos作为服务注册中心

1、项目搭建 首先&#xff0c;我们需要搭建一个 SpringCloud 微服务项目&#xff0c;后续的文章将基于此项目作为学习演示使用 1、创建 cloud-learn 目录&#xff0c;pom.xml 文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> &…

【数据统计】— 峰度、偏度、点估计、区间估计、矩估计、最小二乘估计

【数据统计】— 峰度、偏度、点估计、区间估计、矩估计、最小二乘估计 四分位差异众比率变异系数利用数据指标指导建模思路 形状变化数据分布形态峰度: 度量数据在中心聚集程度偏度 利用数据指标指导建模思路 参数估计点估计区间估计矩估计举例&#xff1a;黑白球&#xff08;矩…

修改键盘映射(注册表)Scancode Map

1.win R 打开 cmd命令框&#xff0c;输入regedit 2.赋值这个地址到蓝色框里&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 3.右键 ->新建->二进制值&#xff0c;命名为 Scancode Map 4.现在来讲解怎么使用这个二进制表修…

LC串联谐振回路

理想LC串联谐振回路 下图是理想的LC串联谐振回路&#xff0c;不考虑L C的等效电阻。理想的LC回路没有任何损耗。 理想LC串联谐振的回路阻抗为&#xff1a; 令虚部为0&#xff0c;就可求出谐振角频率W0 可得谐振角频率&#xff1a; 可得谐振频率&#xff1a; 因为 所以电…

计算机网络之运输层

协议 协议就是计算机与计算机之间通信的“约定”&#xff0c;既为规则&#xff0c;只有遵循这个约定&#xff0c;双方就可以进行通信。 进程之间的通信 从通信和信息处理的角度来看&#xff0c;运输层向上面的应用层提供通信的服务&#xff0c;属于面向通信的最高层&#xf…