在线性表中,数据元素之间是被串联起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中的多个元素相关,但只能和上一层中的一个元素相关。
可是现实生活中,好多关系不再是一对一或一对多,比如人和人之间的关系,会互相认识,就要考虑多对多的情况。这就是今天要介绍的——图。
图是一种较线性表和树更加复杂的数据结构,在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素都可能相关。先看个图:
图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),其中G表示一个图,V是图G中的顶点的集合,E是G中边的集合。
对于图的定义我们需要注意:
- 线性表中的数据元素叫元素,树中将数据元素叫做结点,在图中数据元素叫做顶点。
- 线性表中可以没有数据元素,称为空表。树中可以没有结点,叫做空树。在图结构中,不允许没有顶点,在定义中,V表示有穷的非空集合。
- 线性表中,相邻的数据元素之间具有线性关系,树结构中,相邻两层的结点具有层次关系,而图中,任意两个顶点之间都有可能存在关系,顶点之间的逻辑关机用边来表示,注意边集可以为空。