第一章 什么是数据结构
1.1.1 数据结构的定义
数据:数据是信息的载体,是描述客观实物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。(数据的计算机程序加工的原料)
数据元素:是数据的基本单位,通常作为一个整体进行考虑和加工
数据项:是具有独立意义的数据元素的最小单位,也称为字段或域
一个数据元素由多个数据项组成。
数据对象:是具有相同性质的数据元素的集合,是数据的一个子集
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
不同的数据元素可以组成相同的数据结构
数据结构的三要素:逻辑结构、数据运算、存储结构(物理结构)
1.1.2 逻辑结构
-----集合结构
逻辑结构 -----线性结构(一对一)
-----树形结构(一对多)
-----图形结构(多对多)
集合:是指数据元素之间除了“同属于一个集合”的关系之外别无其他关系
线性结构:数据元素之间是一对一的关系
特点:除了第一个元素外其他元素都有唯一的前驱,除了最后一个元素外其他元素都有唯一的后继
树形结构:数据元素之间存在一对多的关系
特点:除了开始元素以外,每个元素有且仅有一个前驱,除了纵断元素以外,每个元素有一个或多个后继
图形结构:数据元素之间存在多对多的关系
特点:每个元素的前驱元素和后继元素可以是任意多个,图形结构可能没有开始元素和后继元素,也可能有多个开始元素和后继元素
1.1.3 存储结构
存储结构分类(顺序存储、链式存储、索引存储、哈希存储)
顺序存储:采用一组连续的存储单元存放数据元素,而且两个逻辑上相邻的元素在存储 空间上也相邻存放
链式存储:结点地址不连续,通过指针域将所有结点链接起来
索引存储:存储数据元素的同时建立附加索引表,通过关键字来搜索索引表中对应的地址来找到数据元素
哈希存储:也称为散列存储
(若采用顺序存储结构,则各个元素在物理上必须是连续的,若采用非顺序存储结构,则各个数据可以是离散的)
(数据的存储结构会影响存储空间分配的方便程度)
(数据的存储结构会影响对数据运算的速度)
1.1.4 数据运算
数据运算分类(运算的定义、运算的实现)
运算的定义是针对逻辑结构,指出运算的功能
运算的实现是针对存储结构,指出运算的具体操作步骤
1.1.5 数据类型和抽象数据类型
数据类型:是一组性质相同的值的集合和定义在此集合上的一组操作的总称
数据类型按照取值的不同分为原子类型和结构类型
原子类型:是数据的不可再分的基本类型如:int、bool类型 float型等
结构类型:是由若干数据类型组合而成的,是可以再分的如:结构体、数字等