1.2 数据的逻辑结构

1.2.1 有关概念和术语

在系统地学习数据结构知识之前,先了解一些相关概念和术语。

1.数据(Data)

数据是指所有能输入到计算机中并被计算机程序处理的符号的表示。在计算机中,所谓数据就是计算机加工处理的对象,它可以是数值数据,也可以是非数值数据。数值数据包括整数、实数等,主要用于科学计算、财会和商务处理等;非数值数据则包括文字、符号、图形、动画、声音等。

2.数据元素(Data Element)

数据元素(也称为结点)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可以由若干个数据项组成。例如,一个学生的信息为一个数据元素,而一个学生的信息中的每一项(如学号、姓名、性别等)为一个数据项。数据项是数据处理中不可分割的最小单位。

3.数据结构(Data Structure)

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

数据结构一般包括以下3个方面内容:

(1)数据元素之间的逻辑关系,也称数据的逻辑结构;

(2)数据元素及其关系在计算机存储器内的表示,称为数据的存储结构;

(3)数据的运算,即对数据施加的操作。

1.2.2 数据的逻辑结构

1.定义

数据的逻辑结构是指数据元素之间逻辑关系描述。可以用一个二元组表示,其形式化描述为:

G=(D,R)

其中,D为数据元素的有限集合,R为D上关系的有限集合。数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。

2.数据的逻辑结构的分类

根据数据元素之间的逻辑关系的不同特性,分为下列4类基本结构,如图1-3所示。

图1-3 数据结构的4种基本逻辑结构

(1)集合。结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系,这是一种最简单的数据结构。

(2)线性结构。结构中的数据元素之间存在着“一对一”的关系。

线性结构的特点:表中数据元素之间是一种先后关系,对于表中任一结点,与它相邻且在它前面的结点(称为直接前驱)最多只有一个;与表中任一结点相邻且在其后的结点(称为直接后继)也最多只有一个。这种关系称为“线性结构”。

(3)树形结构。结构中的数据元素之间存在着“一对多”的关系。

树形结构的特点:数据元素之间是一对多关系,即一个数据元素向上和一个数据元素相连(称为双亲结点),向下和多个数据元素相连(称为孩子结点)。这种关系称为“树形结构”。

(4)图形结构或网状结构。结构中的任意数据元素之间都可以有关系,元素之间存在着“多对多”的关系。

图形结构的特点:图中数据元素存在着多对多的任意关系。一个结点可能有多个直接前驱和直接后继。