数据结构概论
2025/4/21大约 2 分钟
数据结构和数据对象的区别
在于,数据结构不仅包含各个数据元素,还包含数据元素之间的关系,而数据对象仅包含所有数据元素,是一个集合
数据结构的三要素
逻辑结构
集合 (基本不讨论)
各个数据元素同属一个集合,元素间没有任何关系
线性结构
数据元素之间是一对一关系,除第一个元素之外,每个元素都有唯一一个前驱;除最后一个元素之外,每个元素都有唯一一个后继
树形结构
树形元素间是一对多关系
图状结构(网状结构)
数据元素是多对多关系
物理结构(存储结构)
如何存储逻辑关系
顺序存储
把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现
链式存储
逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系
索引存储
在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式为(关键字、地址)
散列存储(哈希存储)
根据数据元素的关键字直接计算出该元素的存储地址
一些注意点:
- 链式存储,索引存储,散列存储三个被称为非顺序存储
- 数据的存储结构会影响存储空间分配的方便程度
- 数据的存储结构也会影响数据运算的速度
数据的运算
运算的定义是针对逻辑结构的,指出运算的功能、运算的实现是针对存储结构的,指出运算的具体步骤
数据类型和抽象数据类型
数据类型
数据类型是一个值的集合和定义在此集合上的一组操作的总称
原子类型
其值不可再分的数据类型
比如:bool类型、int类型
结构类型
其值可以再分解为若干成分(分量)的数据类型
如在C语言中的结构体类型:
struct Customer { // 各种值的范围和操作可以人为定义
int num;
int people;
String name;
...
};抽象数据类型(Abstract Data Type,ADT)
是抽象数据组织以及与之相关的操作
抽象数据类型一般补不讨论物理结构,只讨论逻辑结构和运算
更新日志
2025/5/14 15:05
查看所有更新日志
9965e-于69f35-于2c8ac-于141a1-于76786-于683ff-于f7cfa-于d40ff-于7f5a6-于7b12d-于
