1.1 什么是数据结构
简单的来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。
1.2 基本概念和术语
数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
如图像,声音等。
数据元素(data element) 是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项(data item)组成。数据项是数据的不可分割的最小单位。
数据对象(data object) 是性质相同的数据元素的集合,是数据的一个子集。
数据结构(data structure) 是相互之间存在一种或多种特定关系的数据元素的集合。
根据数据元素之间的不同特性,通常有下列4类基本结构:
(1)集合 结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系。
(2)线性结构 结构中的数据元素之间存在一个对一个的关系。
(3)树形结构 结构中的数据元素之间存在一个对多个的关系。
(4)图状结构或网状结构 结构中的数据元素之间存在多个对多个的关系。
数据结构的形式定义为:数据结构是一个二元组
Data Structure =(D,S)
其中:D是数据元素的有限集,S是D上关系的有限集。
结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。
数据结构在计算机中的表示(又称为映像) 称为数据的物理结构,又称存储结构。
顺序存储结构的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
链式存储结构的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑关系。
也就是说顺序存储结构的存储物理地址必须连续,而链式存储结构的存储物理地址可以连续,也可以不连续。
数据类型(data type)是一个值的集合和定义在这个值集上的一组操作的总称。
按“值”的不同特性,高级语言中的数据类型可分为两类:一类是非结构的原子类型(值是不可分解的)。另一类是结构类型(值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的)。
抽象数据类型(Abstract Data Type) 是指一个数学模型以及定义在该模型上的一组操作。
一个含抽象数据类型的软件通常应包含定义,表示和实现三个部分。