数据 (data)
定义
是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中
并被计算机程序处理的符号的总称。
数据元素 (data element)
是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象 (data object)
是性质相同的数据元素的集合,是数据的一个子集。
数据结构 (data structure)
是相互之间存在一种或多种特定关系的数据元素的集合。
结构 (structure)
定义
数据元素相互之间的关系称为结构 (structure) 。
根据数据元素之间关系的不同特性,通常有下列四类基本结构:
(1) 集合
结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系
(2) 线性结构
结构中的数据元素之间存在一个对一个的关系;
(3) 树形结构
结构中的数据元素之间存在一个对多个的关系;
(4) 图状结构或网状结构
结构中的数据元素之间存在多个对多个的关系。
数据的逻辑结构
结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。
数据的物理结构
数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构。
它包括数据元素的表示和关系的表示。
数据元素之间的关系在计算机中有两种不同的表示方法:
顺序映像和非顺序映像
并由此得到两种不同的存储结构:
顺序存储结构和链式存储结构
顺序映像的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系;
非顺序映像的特点是借助指示元素存储地址的指针 (pointer) 表示数据元素之间的逻辑关系。
数据类型
定义
是一个值的集合和定义在这个值集上的一组操作的总称。
高级程序语言中的数据类型可分为两类:
一类是非结构的原子类型。
原子类型的值是不可分解的,例如 语言中的基本类型(整型、实型、字符型和枚举
类型)、指针类型和空类型。
另一类是结构类型。
结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。
抽象数据类型 (Abstract Data Type, 简称 ADT)
是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。
抽象数据类型和数据类型实质上是一个概念。
“抽象”的意义在于数据类型的数学抽象特性。
抽象数据类型的定义由一个值域和定义在该值域上的一组操作组成。
若按其值的不同特性,可细分为下列三种类型:
原子类型 (atomic data type)
属原子类型的变量的值是不可分解的。这类抽象数据类型较少,因为一般情况下,已有的固有数据类型足以满足需求。但有时也有必要定义新的原子数据类型,例如数位为 100 的整数。
固定聚合类型 (fixed-aggregate data type)
属该类型的变量,其值由确定数目的成分按某种结构组成。例如,复数是由两个实数依确定的次序关系构成。
可变聚合类型(variable-aggregate data type)
和固定聚合类型相比较,构成可变聚合类型“值”的成分的数目不确定。例如,可定义一个“有序整数序列”的抽象数据类型,其中序列的长度是可变的。
显然,后两种类型可统称为结构类型。
多形数据类型 (polymorphic data type)
多形数据类型 (polymorphic data type) 是指其值的成分不确定的数据类型。
从抽象数据类型的角度看,具有相同的数学抽象特性,故称之为多形数据类型。