数据结构可以理解为数据之间的关系
数据结构:分为
- 逻辑结构
- 物理结构
一.逻辑结构:分为
- 集合 :数据只是在同一 集合中 ,没有其他关系
- 线性:描述一对一的关系
- 树形:描述一对多的关系
- 图形:描述多对多的关系
数据的逻辑结构一般采用二元组方式定义:
数据=(D,S)
其中
D :数据元素的集合
S :D中元素之间的关系的集合
例1:
set = (D,S) 其中:
D = {01,02,03,04,05,06}
S = {}
在set集合中 ,数据元素除了属于同一集合外,不存在其他关系,这就是集合结构
数据只是在同一集合中,数据和数据之间没以后关系
例2:
linearity= (D,S) 其中:
D = {01,02,03,04,05,06}
S = {<01,04>,<04,06>,<06,02>,<02,05>,<05,03>}
在数据结构 linearity中,数据结构是有序的,有一个被称 "第一的"数据元素**(01),还有一个被称为"最后一个"的数据元素(03), 除了第一个元素外,其他,每个元素都有一个直接前驱元素**
除了最后一个元素外,其他,每个元素都有一个直接后继元素
数据元素之间是一对一的关系 是线性关系
例3:
tree= (D,S) 其中:
D = {01,02,03,04,05,06}
S={<01,02>,<01,03>,<02,04>,<02,05>,<03,06>}
在tree数据结构中,除了"第一元素"(01)外,每个元素都有,并且只有一个,直接前驱元素,每个元素可以有多个直接后继元素
数据元素之间是一对多的关系,成为树形关系
例4:
graph= (D,S) 其中:
D = {01,02,03,04,05,06}
S={<01,02>,<01,03>,<02,05>,<05,06>,<06,02>,<05,04>,<04,05>}
在graph数据结构中,每个元素都可以有多个直接前驱元素,每个元素,也可以有多个直接后继元素
这种数据结构是是多对多的关系,我们称为,图形关系
二.物理结构
数据的物理结构,就是逻辑结构在计算机中存储的表示,包括两种表示形式
- 顺序存储
- 链式存储
顺序存储:是使用一块连续的存储空间,数据之间紧挨在一起,数据的前驱和后继关系,可以通过数据元素在内存中相对位置反应出来
链式存储:数据元素的存储位置不是连续的,每个元素保存下个元素的位置