一、基本概念
1.数据:
数据是信息的载体,是描述客观事物的数、字符及所有能输入到计算机内中并能被计算机程序识别和处理的符号的集合。
-----即数据是计算机程序加工的原料。
2.数据元素:
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。
3.数据项:
一个数据元素通常可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
4.数据结构:
是指相互之间存在一种或多种特定关系的数据元素的集合。
5.数据对象:
是指具有相同性质的数据元素的集合,是数据的一个子集。
- 区分:以海底捞顾客信息为例:
数据结构:同一门店排队的顾客信息及它们之间的关系
数据对象:全国所有门店的排队的顾客信息
6.数据类型:
是一个值的集合和定义在此集合上的一组操作的总称。
(1)原子类型:其值不可再分的数据类型。
------bool类型、int类型、double类型……
(2)结构类型:其值可以再分解成若干个分量的数据类型。
------struct类型、枚举类型……
- 抽象数据类型(ADT):是抽象数据组织及与之相关的操作。
二、数据结构的三要素
1.逻辑结构
(1)集合:各个元素同属于一个集合,没有其他关系。
(2)线性结构:数据元素之间是一对一的关系。
除了第一个元素,所有的元素都有唯一的前驱;
除了最后的一个元素,所有的元素都有唯一的后继。
(3)树形结构:数据元素之间是一对多的关系。
(4)图(网)形结构:数据元素之间是多对多的关系。
2.物理结构---存储结构
(1)顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中。
(2)链式存储:逻辑上相邻的元素在物理位置可以不相邻,主要是通过指示元素存储地址的指针表示元素之间的逻辑关系。
(3)索引存储:在存储元素信息的同时,还建立一张附加的索引表。该索引表的一般形式包括关键字和地址。
(4)散列存储:根据元素的关键字算出该元素的存储位置,又被称之为“哈希存储”。
- 注:若物理结构采用的是顺序存储,则各个数据元素在物理上必须是连续的;若物理结构采用的是非顺序存储,则各个数据元素在物理上可以是离散的。
- 数据的存储结构会影响存储空间的分配的方便程度。
- 数据的存储结构影响数据的运算速度。
3.数据的运算:施加在数据上的运算包括运算的定义及实现。
运算的定义:是针对逻辑结构的,指出运算的功能。
运算的实现:是针对物理结构的,指出运算的具体操作步骤。