数据结构的三要素
- 逻辑结构
- 物理结构(存储结构)
- 数据运算
逻辑结构
1.什么是逻辑结构
逻辑结构指的是数据元素之间的逻辑关系是什么
2. 数据的逻辑结构分哪几种
数据的逻辑结构分为:
-
集合
各个元素同属一个集合,并无其他关系 -
线性结构
1.数据元素之间是一对一关系
2.除了第一个元素,所有元素都有为一个前驱
3.除了最后一个元素,所有元素都有为以后继 -
树形结构
数据元素之间是一对多的关系,尤其是电脑的文件目录就是利用这种结构,但是我们在使用其讨论最多的是二叉树的各种性质(下图)
-
图状结构(网状结构)
数据元素之间是多对多的关系,例如成员关系表(下图)
数据的物理结构(数据的存储结构)
1.什么是物理结构
如何用计算机表示数据元素的逻辑结构。
2. 数据的物理结构分哪几种
物理结构分为顺序结构和非顺序存储,非顺序存储分为:1.链式存储2.索引存储3.散列存储。
-
顺序存储
把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元邻接关系来体现。
简单的来说就是给一片连续的存储空间来存储数据。
-
链式存储
逻辑上相邻的元素在物理位置上可以不相邻,它们借助指示元素存储地址的指针来表示元素之间的逻辑关系
简单来说就是一串连续的数据我们用一串不连续的存储空间存储它,它们之间存储的时候除了存储本身的元素外还有向下一个元素位置的指针,它们通过这些指针串起来。
-
索引存储
在存储元素信息的同时,还建立附加的索引表。索引表的每项成为索引项,索引项的一般形式是(关键字,地址)
简单来说,就是存储数据的时候,建立一张索引表,索引表按顺序存储数据元素的地址,然后我们根据这些地址按顺序去获取数据
-
散列存储
根据元素的关键字直接计算出元素的存储地址,又称哈希(Hash)存储。
这里很难用图和文字表达出来(是我太菜了),后面深入学习的时候我在写一片详细的,目前暂时用java的HashMap存储来理解
结论
- 若采用顺序存储,这各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上是可以离散的。
- 数据的存储结构会影响存储空间分配的方便程度。
- 数据的存储结构会影响数据运算的速度。