线性存储元素时,元素的关系也同时确定了。而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的逻辑关系。例如,图这种数据结构的矩阵存储就是用一个顶点向量存储顶点元素,再用一个邻接矩阵存储元素关系。
由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,即图没有顺序存储结构,但可以借助二维表来表示元素之间的关系,一般称为邻接矩阵。另一方面,由于图的任意两个顶点间都可能存在关系,因此,用链式存储表示图结构是很自然的事,其中有代表性的一种链式存储称为邻接表。
在图的邻接矩阵表示法中,用邻接矩阵表示顶点间的相邻关系,而用一个顺序表来存储顶点信息。
图的邻接矩阵表示法适用范围广泛,可以用来描述有向图、有向表、无向图、无向表。
邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。设G(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:
则上图的邻接矩阵可以表示为:
若是带权图(网),则G的邻接矩阵是具有如下性质的n阶方阵: