数据结构三要素
包括:
- 数据的逻辑结构
- 数据的存储结构
- 数据的运算
数据的逻辑结构
指数据节点之间的逻辑关系,是数据在用户面前呈现的形式。
数据节点之间按逻辑结构可分为:
线性结构的特点:
- 数据节点之间只存在一对一的关系
- 开始节点和终端节点都是唯一的
- 除了开始节点和终端节点以外,其余节点都有且仅有一个前驱节点,有且仅有一个后继节点
树形结构的特点:
- 数据节点之间存在一对多的关系
- 开始节点唯一,终端节点不唯一
- 除了终端节点以外,每个节点有一个或多个后继节点
- 除开始节点以外,每个节点有且仅有一个前驱节点
图形结构的特点:
- 数据节点之间存在多对多的关系
- 没有开始节点和终端节点,所有节点都可能有多个前驱节点和多个后继节点
数据的存储结构
指数据节点及其关系在计算机存储器中的存储方式,也称为数据的物理结构。
数据节点按存储结构可分为:
- 顺序结构:利用数组实现,空间利用率高
- 链式结构:利用指针实现,便于增删调整修改
- 索引结构:利用索引项实现,索引项包括关键字和地址,查找速度快,但是存储索引项会增加空间支出
- 散列结构:利用哈希公式等计算并存储数值为地址,作为快速查找的依据,但是缺点是存储数值会占用大量空间,并且仅保存数据数值,不保存数据的逻辑关系
数据的运算
施加在数据上的运算包括运算的定义和实现。
-
运算的定义针对逻辑结构,指出运算的功能;
-
运算的实现针对存储结构,指出运算的具体操作步骤。
逻辑结构二元组
逻辑结构二元组是是表示数据逻辑结构的抽象工具。
逻辑结构二元组只关心两个问题:
- 数据是什么,包括:
- 数据是什么类型,例如int、char、struct
- 数据的数量
- 数据之间是什么关系
- 数据之间是相邻关系,使用括号(e1,e2)表示
- 数据之间是先后关系,使用尖括号<e1,e2>表示
逻辑结构二元组表示方法:
B = ( D , R ) B=(D,R) B=(D,