数据: 所有能输入到计算机中且能被计算机处理的符号的总称。
数据元素: 是数据的基本单位,表示数据集合中的一一个个体。
数据项: 数据元素中有独立含义的最小单位。

数据结构
数据结构:相互之间存在一定关系的数据元素的集合。(数据、数据之间的关系)
- 逻辑结构
- 存储结构
- 运算
逻辑结构是存储结构的抽象表示,而存储结构是逻辑结构在计算机内的表示形式。
逻辑结构
数据的逻辑结构: 指数据元素之间的逻辑关系,是从实际问题抽象出的数学模型。
根据数据元素之间逻辑关系的不同,数据结构分为三种:
数据的存储结构: 指数据元素及其关系在计算机中的存储表示或实现,也称为物理结构。
其基本形式有两种:
- 顺序存储结构
- 链式存储结构
顺序存储结构
使用一组连续的内存单元依次存放数据元素,数据元素在内存中的物理存储次序与它们的逻辑次序相同。
序列A=(12,23,44,33,65),对应的顺序存储结构如下图所示:
链式存储结构
使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,数据元素之间的逻辑关系用指针来表示。
序列A=(12,23,44,33,65),对应的链式存储结构如下图所示:
在链式存储结构中,我们除了存储元素的数值以外,还要再存储元素之间的关系,用指针来存储,需要为指针再额外开辟空间。
运算
对数据的操作:每种数据结构都需要一组对其数据元素实现特定功能的操作(运算、处理、算法)。通常会包含一些基本操作,此外根据自身特点,还有一些特定操作。
基本操作如初始化、判断是否为空、存取、统计元素个数、遍历、插入、查找、排序等等。
数据类型与抽象数据类型
数据类型:一个值的集合和定义在这个值集上的一组操作的总称。
值的集合(整型、浮点型),操作(加、减、乘、除)
数据类型,定义了数据的取值,此外,对集合上的运算也实现了,它是一个比较具体的概念。
而在定义数据结构时,并不关注数据具体的类型和操作的实现过程,可以看成是一个比较抽象的概念。
抽象数据类型(abstract data type, ADT):一个数学模型以及定义在该模型上的一组操作。
抽象数据类型 = 逻辑结构 + 抽象运算
使用ADT描述数据结构,可以将数据及其操作的定义与实现相分离。
声明抽象数据类型包括ADT名称定义、数据及其关系定义和操作集合:
ADT Complex
{D={real, imag | real,imag均为实数} //复数由两个实数构成R={<real, imag> | real是复数的实部,imag是复数的虚部}Complex(real, imag) //构造一个复数Complex add(Complex c) //加法,返回相加后的复数Complex sub(Complex c) //减法,返回相减后的复数}
每种抽象数据类型描述一种数据结构的逻辑特性和操作集合,与其储存结构与实现无关。
