数据结构的定义
按某种逻辑关系组织起来的一批数据,按一定的映象方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合。
数据(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位串”通常称为“结点”。
当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据字段。
数据元素之间的关系在计算机中有两种基本的存储结构:
顺序存储结构
链式存储结构
在高级语言的指针类型中,不是针对计算机的实际地址进行存储,这种存储称为虚拟存储结构。
逻辑结构与存储结构的关系
存储结构是逻辑关系的映象与元素本身的映象。
逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系。