首先介绍一下数据结构的相关名词
1、数据:在我们未接触计算机之前,我们所遇见的数据基本上都是一些数值,当然这并不全面。
数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。换句话说,数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述。简而言之,数据就是计算机化的信息。
2、数据元素(记录)
数据元素是组成数据的基本单位,是数据集合的个体,在计算机中通常作为一个整体进行考虑和处理。一个数据元素可由一个或多个数据项组成,数据项是有独立含义的最小单位。
3、数据对象
数据对象是性质相同的数据元素的集合,是数据的一个子集。
4、数据结构
数据结构是指相互之间存在一种或多种特定关系的数据元素集合,是带有结构的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式。
5、数据类型
数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。数据类型中定义了两个集合,即该类型的取值范围以及该类型中可允许使用的一组运算。例如,高级语言中的数据类型就是已经实现的数据结构的实例。从这个意义上讲,数据类型是高级语言中允许的变量种类,是程序语言中已经实现的数据结构(即程序中允许出现的数据形式)。在高级语言中(如c语言),基本整型(int)的取值范围,可用的运算符集合为加、减、乘、除、取模(如c语言中+-*/%)。数据类型指由系统定义的、用户可直接使用且可构造的数据类型。
6、抽象数据类型(ADT)
抽象数据类型定义了一个数据对象、数据对象中各元素间的结构关系以及一组处理数据的操作。从某种意义上讲,抽象数据类型和数据类型实质上是一个概念,只不过ADT更为广义,不仅限于各种不同的计算机处理器中已定义并实现的数据类型,还包括设计软件系统时用户自己定义的复杂数据类型。ANT包括定义和实现两部分,其中定义是独立于实现的。定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。表、堆栈(栈)、队列、树等结构就是一个个不同的抽象数据类型。
如果对ADT还是不够了解的话,大家可以参阅https://zhidao.baidu.com/question/416407216.html?word=%E4%BB%80%E4%B9%88%E6%98%AF%E6%8A%BD%E8%B1%A1%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B
数据元素间的相互关系具体应包括三个方面:数据的逻辑结构、数据的物理结构和数据的运算集合。
1、逻辑结构:数据的逻辑结构是指数据元素之间的逻辑关系描述。
- 根据数据元素之间关系的不同特性,通常有下列四类基本结构
(1)集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系。
(2)线性结构:结构中的数据元素之间存在着一对一的线性关系。
(3)树形结构:结构中的数据元素之间存在着一对多的层次关系。
(4)图状结构(网状结构):结构中的数据元素之间存在着多对多的任意关系。
- 由于集合的关系非常松散,因此可以用其他结构代替它,故数据的逻辑结构可概括如下:
线性结构:线性表、栈、队、字符串、数组、广义表
非线性结构:树、图
2、物理结构(存储结构)是逻辑结构在计算机中的存储映像,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。
逻辑结构是数据结构的抽象,存储结构是数据结构的实现。两者的关系为:存储结构是逻辑关系的映像与元素本身映像。
数据元素之间的关系在计算机中有两种不同的表示方法:
(1)顺序存储结构(顺序映像)
(2)非顺序存储结构(非顺序映像)
数据结构在计算中的映像包括数据元素映像和关系映像。关系映像在计算机中可用顺序存储结构或非顺序存储结构这两种不同的表示方法来存放。逻辑结构在计算机存储中实现时,可采用不同的存储
3、运算集合:其实指的就是一些相关操作。
- 综上所述,数据结构的内容可归纳为三个部分:逻辑结构、存储结构和运算集合。按某种逻辑关系组织起来的一批数据,按一定的映像方式把它们存放在计算机的存储器中,并在这些数据上定义一个运算的集合,就叫做数据。