数据结构之图的存储表示
邻接矩阵
邻接矩阵是图的顺序存储表示。其中,无向图的邻接矩阵是对称的,行数(列数)对应于图中节点的个数,上三角(下三角)矩阵中非0数目表示边的条数;有向图的邻接矩阵一般是非对称的,在加权图中,主对角线上元素表示自己到自己的距离,一般设为0,而不连通的两节点间的距离表示为无穷大,其他元素用边上权值来表示。
邻接表
邻接表是图的链式存储结构,包括由单链表的表头构成的顶点表和由单链表其余顶点构成的边表两部分。
对于有向图,有了邻接表,方便我们计算每个顶点的出度,但是若想计算每个顶点的入度,则需要我们遍历整个邻接表,代价较高。
逆邻接表
为了方便计算每个顶点的入度,引入了逆邻接表。与邻接表类似,它由单链表表头构成的顶点表和其他指向该顶点的其余顶点构成的边表两部分组成。
十字链表
十字链表仅适用于存储有向图或有向网。
邻接多重表
邻接多重表仅适用于无向图。