数据结构与算法-三种结构详解
0 Preview
书接上回,这一篇
1 逻辑结构
1 集合 无关系
2 线性结构 一对一 有序
3 树形结构 一对多 开始元素唯一,终端元素不唯一
4 图形结构 多对多 所有元素都可能有多个前驱元素和多个后继元素
数据的逻辑结构是面向用户的,可以用图表和二元组表示。
二元组:二元组:B=(D,R)
B 是一种数据结构,他由数据元素的集合 D 和 D上二元关系的集合 R 所组成。其中:
数据元素的集合关系的集合(1)D=di|1<=i<=n,n>=0;数据元素的集合 R=rj|1<=j<=m,m>=0;关系的集合
序偶<x,y>(x,y∈D) x为第一元素,y为第二元素。
x为y的前驱元素。
y为x的后继元素。
若某个元素没有前驱元素,则称该元素为开始元素;若某个元素没有后继元素,则称该元素为终端元素。
序偶<x,y>表示x、y是有向的,序偶(x,y)表示x、y是无向的
2 存储结构表示
🚪 数据逻辑结构在计算机中的存储表示称为数据的存储结构,也称为物理结构。
共有四种存储结构:
🚚顺序存储结构 — 结构体数组:
— 所有元素占用一整块内存空间。
— 逻辑上相邻的元素,物理上也相邻。
🚚链式存储结构 — 链表:
— 一个逻辑元素用一个结点存储,每个结点单独分配,所有结点的地址不一定是连续的。
— 用指针来表示逻辑关系。
🚚索引存储结构 — 主数据表 + 索引表
— 通过索引表按关键字查找速度快
— 增加索引表 ➡️ 存储空间较大
🚚哈希(散列)存储结构 — 哈希函数 + 解决冲突方法
— 按关键字查找速度快
— 需要解决冲突
— 但不非适合任何数据的存储
3 数据运算
数据运算是对数据实施的操作。分为 运算定义 和 运算实现。
同一逻辑结构可以对应多种存储结构。
同样的运算,在不同的存储结构中,其实现过程是不同的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shangu's Blog!