笨鸟学数据结构(绪论)
创始人
2025-05-29 07:10:23

数据结构的定义

按某种逻辑关系组织起来的一批数据,按一定的映象方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合。

数据(Data)

数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。

数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述。简而言之,数据就是计算机化的信息。

数据的概念是广义的。

数据元素(DataElement)

数据元素是组成数据的基本单位, 是数据集合的个体。

数据项(Data Item)是有独立含义的最小单位。

数据对象(DataObject)

数据对象是性质相同的数据元素的集合,是数据的一个子集。

数据结构(DataStructure)

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

数据结构:关心数据元素之间的相互关系与组织方式、运算及规则,不涉及数据元素的具体内容。

数据类型(DataType)

数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。

数据类型中定义了两个集合:类型的取值范围、可允许使用的一组运算集。

由于客观事物存在着各种不同的联系形式,因此在计算机内反映数据的关系时,可以用结构来描述这些关系。数据结构分为

逻辑结构:指数据元素之间的关系。

物理结构:数据结构在计算机中的表示,又称为存储结构。

c语言的数据类型如下

一般来说,高级语言中的数据类型可分为两类:

①非结构的原子类型

原子类型的值是不可分解的。

C语言中的标准类型(整型、实型、字符型、枚举型)及指针和空类型。

②结构类型

结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是原子型或结构型。

C语言中的数组、结构体、共用体。

抽象数据类型(AbstractData Type,ADT)

抽象数据类型(AbstractData Type)是指基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作。

①抽象数据类型的定义取决于客观存在的一组逻辑特性,而与其在计算机内如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。

②抽象数据类型和数据类型实质上是一个概念。

“抽象”的意义在于数学特性的抽象。

一个ADT定义了一个数据对象,数据对象中各元素间的结构关系,以及一组处理数据的操作。

ADT 通常由用户定义且用以表示应用问题的数据模型,通常由基本的数据类型组成,并包括一组相关服务操作。

抽象数据类型是近年来计算机科学中提出的最重要的概念之一,它集中体现了程序设计中一些最基本的原则:

数据抽象(Abstraction)与信息隐藏

一个抽象数据类型确定了一个模型,但将模型的实现细节隐藏起来;

它定义了一组运算,但将运算的实现过程隐藏起来。

模块化(Modularity)

封装(Encapsulation)与复用(Reuse)

四类基本数据结构

集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其它关系。

线性结构:结构中的数据元素之间存在着一对一的线性关系。

树形结构:结构中的数据元素之间存在着一对多的层次关系。

图状结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。

存储结构(又称物理结构)

逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。

形式化描述

D要存入机器中,建立一从D的数据元素到存储空间M单元的映象S,D→M,即对于每一个d,d∈D, 都有唯一的z∈M,使S(D)=Z, 同时这个映象必须明显或隐含地体现关系R。

同一种逻辑结构可以使用不同的物理结构来实现。

在计算机中表示信息的最小单位是一个二进制位(bit)。一个数据元素的“bit位串”通常称为“结点”。

当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据字段。

数据元素之间的关系在计算机中有两种基本的存储结构:

顺序存储结构

链式存储结构

在高级语言的指针类型中,不是针对计算机的实际地址进行存储,这种存储称为虚拟存储结构。

逻辑结构与存储结构的关系

存储结构是逻辑关系的映象与元素本身的映象。

逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系。

相关内容

热门资讯

#科研筑基# 吴恩达深度学习 ... 为什么深度学习会兴起机器学习算法在处理少量数据时效率很高,但数据规模巨大时࿰...
青岛事故车交易网(青岛哪里有事... 本篇文章极速百科给大家谈谈青岛事故车交易网,以及青岛哪里有事故车批发对应的知识点,希望对各位有所帮助...
适合家庭用车的5款车,空间大乘... 今天给各位分享适合家庭用车的5款车,空间大乘坐感舒适,省油耐用又...的知识,其中也会对适合家用的车...
丰田卡罗拉油耗多少钱一公里(卡... 今天给各位分享丰田卡罗拉油耗多少钱一公里的知识,其中也会对卡罗拉16自动挡油耗进行解释,如果能碰巧解...
为众人抱薪者原文出自何处(为众... 本篇文章极速百科给大家谈谈为众人抱薪者原文出自何处,以及为众人抱薪者是谁的话对应的知识点,希望对各位...
人机对话比拼,Chat GPT... 目录 文心一言初体验 一、登录体验难易对比  二、测试对比--哲学类 第一个问题:《三...
强化学习笔记-04 动态规划D... 本文是博主对《Reinforcement Learning- An introduction》的阅读...
吉林华泰车险地址查询:理赔网点... 本篇文章极速百科给大家谈谈吉林华泰车险地址查询:理赔网点、营业厅、门店、定损...,以及华泰财产保险...
中国的五岳的特点各是什么(中国... 本篇文章极速百科给大家谈谈中国的五岳的特点各是什么,以及中国的五岳都是怎么样的对应的知识点,希望对各...
英菲尼迪fx35油耗多少钱(英... 本篇文章极速百科给大家谈谈英菲尼迪fx35油耗多少钱,以及英菲尼迪fx350油耗多少对应的知识点,希...
嫡孙是什么孙子(嫡孙指的是什么... 本篇文章极速百科给大家谈谈嫡孙是什么孙子,以及嫡孙指的是什么意思对应的知识点,希望对各位有所帮助,不...
【Linux】网络基础(2) 前言         本篇笔记记录我在Linux系统下学习网络基础部分知识,从关于网络...
计算机网络(第九弹) --- ...   传输控制协议 TCP 在整个计算机网络中占有很高的地位, 它会控制着网络上数据的传输过程, 当然...
Java二叉树的前中后序遍历 Java二叉树的前中后序遍历1.前序遍历1.1前序遍历概念1.2前序遍历习题2.中序遍历2.1中序遍...
电动汽车十大名牌排名及价格,纯... 今天给各位分享电动汽车十大名牌排名及价格,纯电动汽车排名及价格...的知识,其中也会对电动汽车十大名...
长安奔奔mini保养(长安奔奔... 本篇文章极速百科给大家谈谈长安奔奔mini保养,以及长安奔奔mini保养手册对应的知识点,希望对各位...
Python-06:异常、模块... 文章目录一、异常1.1 异常的概念1.2 捕获异常的语法1.3 代码演示1.4 异常的传递性二、模块...
满州是哪里(日本口中的满洲是哪... 今天给各位分享满州是哪里的知识,其中也会对日本口中的满洲是哪里进行解释,如果能碰巧解决你现在面临的问...
义乌交通违章查询,浙江义乌交通... 今天给各位分享义乌交通违章查询,浙江义乌交通违章查询的知识,其中也会对义乌违章查询入口进行解释,如果...
WEB安全 DIV CSS基础 1.DIV和CSS样式             层叠样式表(英文全称:Cascadin...
灵感来自游艇?聊天津一汽骏派C... 今天给各位分享灵感来自游艇?聊天津一汽骏派CX65设计的知识,其中也会对一汽骏派suv进行解释,如果...
汽车维修哪个学校比较好?(学汽... 今天给各位分享汽车维修哪个学校比较好?的知识,其中也会对学汽车维修哪个学校好,快来看看!进行解释,如...
科学技术的两面性是什么(科学技... 本篇文章极速百科给大家谈谈科学技术的两面性是什么,以及科学技术的两面性发言稿50字对应的知识点,希望...
京沪高速实时路况(京沪高速实时... 本篇文章极速百科给大家谈谈京沪高速实时路况,以及京沪高速实时路况今天封闭没有对应的知识点,希望对各位...
[刷题 java版] | 字节... 1.万万没想到之聪明的编辑我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件&...
#科研筑基# 吴恩达深度学习 ... 引例这门课的名字叫深度学习,为什么我们要先介绍神经网络呢?那是因为&#x...
vue3一天内快速学习 文章目录简介vue3 学习安装项目结构基础知识模版语法{{}}v-htmlv-bind渲染展示v-i...
特斯拉专题研究报告:特斯拉第三... 今天给各位分享特斯拉专题研究报告:特斯拉第三篇章展望的知识,其中也会对特斯拉研究成果进行解释,如果能...
高速免费提前几个小时(高速免费... 今天给各位分享高速免费提前几个小时的知识,其中也会对高速免费提前几个小时上高速进行解释,如果能碰巧解...
卡罗拉和朗逸怎么选哪个更值得入... 今天给各位分享卡罗拉和朗逸怎么选哪个更值得入手的知识,其中也会对卡罗拉和朗逸买哪个好更好进行解释,如...