1. 概念
表示一组数据元素及其相互关系的数据结构有两种不同的表现形式:
逻辑结构
逻辑层面上数据之间的关系。一般可分为:线性结构、非线性结构(集合、树、网)
存储结构
我们可以理解为是逻辑结构用计算机语言来实现。常见有:顺序存储、链式存储、索引存储、散列存储(哈希表)。
2. 逻辑结构
我们可以通过二元组、图形来描述数据的逻辑结构。
数据结构的二元组表示形式为:数据结构={D,S}.其中D是数据元素的集合,S是D中数据元素之间的关系集合。
2.1 集合结构
一个数据结构的二元组表示为:
set=(K,R),其中
K={01,02,03,04,05}
R{}
可以看出在数据结构set中,关系集合为空,因而数据元素之间除了同属一个集合之外没有任何关系,该结构只考虑数据元素而不考虑之间的关系,我们称这种数据结构为集合结构。
图形表示非常直观:
2.2 线性结构
linearitry=(K,R),其中
K={01,02,03,04,05}
R{<02,04>,<03,05>,<05,02>,<01,03>}
可以看出,数据元素是有序的,元素01为第一个,元素04为最后一个。除了首尾元素,其他每个元素有且只有一个直接前驱元素和一个直接后续元素。这种数据结构的特点是数据元素之前是1对1的联系,即线性关系,我们称为线性结构。
2.3 树结构
tree=(K,R),其中
K={01,02,03,04,05}
R{<01,02>,<01,03>,<02,04>,<02,05>,<03,06>}
可以看出,除了一个数据元素(根元素)以外,每个数据元素有且只有一个直接前驱元素,但可以有多个直接后续元素。其特点是数据元素之间是1对N的联系,我们把这种特点的数据结构称为树结构。
2.4 图结构
graph=(K,R),其中
K={01,02,03,04,05}
R{<01,02>,<01,05>,<02,01>,<02,03>,<02,04>,<03,02>,
<04,02>,<04,05>,<05,01>,<05,04>}
可以看出,每个数据元素可以有多个直接前驱元素,也可以有多个直接后续元素。其特点是数据元素之间是N对M的联系,我们把这种特点的数据结构称为图结构。