基本概念和术语
数据(Data)
能输入计算机且能被计算机处理的各种符号的集合
数值型的数据
非数值型的数据
数据元素
数据的基本单位
数据项
构成数据元素的不可分割的最小单位
数据、数据元素、数据项三者之间的关系:
数据 > 数据元素 > 数据项
例:学生表 > 个人记录 > 学号、姓名…
数据对象
性质相同的数据元素的集合,是数据的一个子集。
数据结构
相互之间存在一种或多种特定关系的数据元素集合。包括以下三方面的内容:
- 逻辑结构
- 存储结构(物理结构)
- 数据的运算和实现
逻辑结构
线性结构
有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
例如:线性表、栈、队列、串
非线性结构
一个结点可能有多个直接前趋和直接后继。
例如:树、图
存储结构
顺序存储结构
用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。
C语言中用数组来实现顺序存储结构。
链式存储结构
用一组任意的存储单元依次存储数据元素,数据元素之间的逻辑关系由指针来表示。
C语言中用指针来实现链式存储结构。
索引存储结构
在存储结点信息的同时,还建立附加的索引表。
散列存储结构
根据结点的关键字直接计算出该结点的存储位置。
数据类型
是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。
抽象数据类型(ADT)
指一个数学模型以及定义在此数学模型上的一组操作。
抽象数据类型的形式定义
抽象数据类型可用(D,S,P)三元组表示。
其中:
D是数据对象;
S是D上的关系集;
P是对D的基本操作集。
定义格式:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
其中:
数据对象、数据关系的定义用伪代码描述
基本操作的定义格式为:
基本操作名(参数表)
初始条件
操作结果