一、邻接矩阵
图的邻接矩阵存储方式是用两个数组表示图,顶点数组(一维数组)存储顶点信息,边数组(二维数组)存储图中的边或弧的信息。(图片来自于百度百科)
如果存在边,则数组元素置为1,若无边,则数组元素为0。
若为无向图,则矩阵对称,若为有向图,则不一定对称。但无论是有向图还是无向图,矩阵主对角线上的值都为0。
二、邻接表
可以看出,若数据量巨大,则邻接矩阵会浪费巨大的空间。改用邻接表可以节约大量存储空间。邻接表是一种数组与链表相结合的存储方式。图中顶点用一个一维数组存储,另外,对于顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息。图中每个顶点vi的所有邻接点构成一个线性表,由于邻接点的个数不定,所以用单链表存储,无向图称为顶点vi的边表,有向图