1.2.1 数据、数据元素、数据项和数据对象
数据 是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素 是数据的基本单位。又称元素、记录、结点等。
数据项 是组成数据元素的最小单位,又称域。
数据对象 是性质相同的数据元素的集合,是数据的一个子集。
1.2.2数据结构
数据结构 是相互之间存在一种或多种特定关系的数据元素的集合。是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
数据结构包括逻辑结构和存储结构两个层次。注意逻辑结构唯一,储存结构不唯一。
1.逻辑结构
数据的逻辑结构是从逻辑关系上描述数据,可以看作从具体问题抽象出来的数学模型。
逻辑结构有两个要素:数据元素和关系。
数据元素之间的关系通常有四种:
(1)集合结构
数据元素的关系:同属一集合
(2)线性结构
数据元素之间存在一对一的关系
(3)树结构
数据元素之间存在一对多的关系
(4)图结构
数据元素之间存在多对多的关系
上述四种结构又可划分为:
非线性结构:集合结构,树结构和图结构。
线性结构:线性表,栈和队列(特殊线性表只能在表一端或两端操作),字符串(特殊线性表数据元素是一个字符),数组和广义表(线性表的推广其数据元素是线性表)。
2.存储结构
数据在计算机中的存储表示称为存储结构又称物理结构。有两种基本结构顺序存储结构和链式存储结构。
(1)顺序存储结构
顺序存储结构将数据元素之间的逻辑关系转为在存储器中的相对位置。
其中第i个数据的地址Loc(i)为第一个数据的地址加上i-1个数据占用的存储单元m 即 Loc(i)=L0+(i-1)*m
(2)链式存储结构
链式存储结构不需要像顺序存储结构那样要求一整片连续的存储单元。
链式存储结构将数据元素之间的逻辑关系转为元素内指向后继元素的指针。
链式存储结构示意图
1.2.3 数据类型和抽象数据类型
1.数据类型
数据类型是高级程序设计语言的一个概念。如在c语言中的int,double,char等。数据类型是一个值的集合和定义在值集上的一系列操作的总称。例如c语言中的int整型变量其值集为一个区间上的整数,定义在其上操作有加减乘除等。
2.抽象数据类型
抽象数据类型(ADT)一般指由用户定义的数学模型以及定义在此模型上的一系列操作的总称。
抽象数据类型包括三部分:数据对象、数据对象上关系的集合、数据对象的基本操作的集合。
ADT 抽象数据类型名{
数据对象:如 int a,b;
数据关系:如 a=b+1;
基本操作。
}ADT 抽象数据类型名
基本操作的定义
基本操作名(参数)
初始条件
操作结果
参数有两种:赋值参数只提供输入值;引用参数以“&”打头提供输入值还能返回结果。