1.数据结构的研究内容
数据结构的研究对象是非数值计算的程序设计中计算机的操作对象,以及他们之间的关系和操作。
所谓非数值计算,指的是相关问题的数学模型不是数学方程,而是具有逻辑关系的数据。例如表、树和图。
2.基本概念和术语
(1)数据、数据元素、数据项和数据对象
数据:指能被输入到计算机中并被计算机程序处理的符号。
数据元素:数据的基本单位,在计算机中常被当做一个整体进行考虑和处理。
数据项:组成数据元素的单位,有独立的含义,并且不可分割。
数据对象:由性质相同的数据元素所组成的集合。
(2)数据结构
数据元素相互之间的关系被称之为结构,而数据结构是相互之间具有特定关系的数据元素的集合。
或者说,数据结构是带“结构”的数据元素的集合。
数据结构分为两个层次,即逻辑结构和存储结构。
1)逻辑结构
逻辑结构反映数据元素的逻辑关系,常见的基本逻辑结构有四种
- 集合结构,数据元素除了“属于同一集合”外,没有其他特殊关系。
- 线性结构,数据元素有着“一个接一个”的关系,比如从小到大排序的一串数列。
- 树结构,数据元素存在一对多的关系,比如文件夹中包含多个文件。
- 图结构,数据元素存在多对多的关系,比如地图上多个点之间互相到达的路径
2)存储结构
存储结构反映数据对象在计算机当中的存储表示,常见的存储结构有顺序存储结构和链式存储结构
- 顺序存储结构,在计算机中依次存放在一片连续的存储空间中,比如C语言中的数组。
- 链式存储结构,无需存储在连续的存储空间中,但在每一个结点需要额外存储下一个结点的地址,通常要利用到指针类型。
(3)数据类型和抽象数据类型
数据类型,可以看做一种数据元素的集合,该集合规定了内部数据元素的类型和取值范围,以及对这些数据元素的一组操作。
抽象数据类型,是用户定义的数据类型,包含了表示问题的数学模型,和定义在这个数学模型上的操作。
抽象数据类型包括三部分:数据对象、数据对象关系的集合和对数据对象的基本操作的集合。
定义抽象数据类型,一般定义数据对象、数据关系和基本操作三个部分,而基本操作又需要定义其参数表、初始条件和操作结果。