数据结构(data structure )是指相互之间存在一种或多种特定关系的数据元素的集合。
是组织并存储数据以便能够有效使用的一种专门格式,它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。- 数据结构的二元组表示形式为:
数据结构 = {D , S}
其中 D 是数据元素的集合;S 是 D 中数据元素之间的关系集合,并且数据元素之间的关系是使用序偶来表示的。序偶是由两个元素 x 和 y 按一定顺序排列而成的二元组,记作<x , y>,x 是它的第一元素,y 是它的第二元素。
当使用图形来表示数据结构时,是用图形中的点来表示数据元素,用图形中的弧来表示数据元素之间的关系。如果数据元素 x 与 y 之间有关系<x , y>,则在图形中有从表示 x 的点出发到达表示 y 的点的一条弧。
二元组表示:
一种数据结构的二元组表示为 set = (K,R),其中
K = {01, 02, 03, 04, 05}
R = {}
可以看到在数据结构 set 中,只有数据元素的集合非空,而数据元素之间除了同属一个集合之外不存在任何关系(关系集合为空)。这表明该结构只考虑数据元素而不考虑它们之间的关系。我们把具有这种特点的数据结构称为集合结构。
如图:
- 线性结构
一种数据结构的二元组表示为 linearity = (K,R),其中
K = {01, 02, 03, 04, 05}
R = {<02,04>, <03,05>, <05,02>, <01,03>}
可以看到在数据结构 linearity 中,数据元素之间是有序的。在这些数据元素中有一个可以被称为“第一个”(元素 01)的数据元素;还有一个可以被称为“最后一个”(元素 04)的数据元素;除第一个元素以外每个数据元素有且仅有一个直接前驱元素,除最后一个元素以外每个数据元素有且仅有一个直接后续元素。这种数据结构的特点是数据元素之间是 1对 1 的联系,即线性关系,我们把具有此种特点的数据结构称为线性结构。
如图:
一种数据结构的二元组表示为 tree = (K,R),其中
K = {01, 02, 03, 04, 05, 06}
R = {<01,02>, <01,03>, <02,04>, <02,05>, <03,06>}
可以看到在数据结构 tree 中,除了一个数据元素(元素 01)以外每个数据元素有且仅有一个直接前驱元素,但是可以有多个直接后续元素。这种数据结构的特点是数据元素之间是 1 对 N 的联系,我们把具有此种特点的数据结构称为 树结构。
如图:
- 图结构
一种数据结构的二元组表示为 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>}
可以看到在数据结构 graph 中,每个数据元素可以有多个直接前驱元素,也可以有多个直接后续元素。这种数据结构的特点是数据元素之间是 M 对 N 的联系,我们把具有此种特点的数据结构称为图结构
如图