目录
1. 邻接矩阵 adjacency matrix
-
无向图是对称矩阵。
-
某个顶点的度其实就是这个顶点 vi 在邻接矩阵中第i行(或第i列)的元素之和。比如顶点v1 的度就是1+0+1+0=2。
-
求顶点vi 的所有邻接点就是将矩阵中第i行元素扫描一遍, arc[i][j]为1就是邻接点。
-
有向图讲究入度与出度, 顶点 vi 的入度为1, 正好是第vi 列各数之和。顶点 vi 的出度为2, 即第vi 行的各数之和。
-
与无向图同样的办法, 判断顶点vi 到vj 是否存在弧, 只需要查找矩阵中arc[i][j]是否为1即可。 要求vi 的所有邻接点就是将矩阵第i行元素扫描一遍, 查找arc[i][j]为1的顶点。
2. 邻接表
无向图
-
图中顶点用一个一维数组存储,每个数据元素还需要存储指向第一个邻接点的指针, 以便于查找该顶点的边信息。
-
每个顶点vi的所有邻接点构成一个线性表
-
无向图称为顶点 vi 的边表, 有向图则称为顶点 vi 为弧尾的出边表。
-
顶点的度等于顶点的边表中结点的个数。
-
若要判断顶点vi到vj是否存在边, 只需要测试顶点vi的边表中adjvex是否存在结点vj的下标j就行了。
有向图
以顶点为弧尾来存储边表, 这样很容易就可以得到每个顶点的出度。