度矩阵 (D) 和邻接矩阵 (A) 是如何定义和构建的。
无向图的例子
假设我们有一个无向图 (G),包含4个顶点 (V={1,2,3,4}),以及以下边集 (E):
- 顶点1与顶点2相连
- 顶点1与顶点3相连
- 顶点2与顶点4相连
- 顶点3与顶点4相连
邻接矩阵 (A)
这里,矩阵的对角线元素都是0,因为一个顶点不会与自己相连;非对角线上的1表示两个顶点之间有边相连。
度矩阵 (D)
在这个例子中,每个顶点的度都是2,因为图中的每个顶点都有两条边相连。
有向图的例子
如果考虑一个有向图,邻接矩阵的构造方式相同,但不一定对称,因为有向边的存在不意味着反方向也有边。
假设有一个有向图,同样有4个顶点,边集为:
- 顶点1指向顶点2
- 顶点1指向顶点3
- 顶点2指向顶点4
- 顶点3指向顶点4
邻接矩阵 (A)
对于这个有向图,邻接矩阵 (A) 可能是:
注意,与无向图相比,这里的 (A) 不再是对称的,因为有向边的存在是单向的。
度矩阵 (D)
度矩阵依然记录每个顶点的度数,但在这里我们需要区分入度和出度。
通常的度矩阵关注的是顶点的总度数(出度+入度),但在有向图中,如果我们只考虑出度,度矩阵 (D) 将会是:.
这里注意,若有声明出度矩阵(入度矩阵),则按照要求即可。
下例表示出度
这里,顶点1有两条出边,顶点3、顶点2有一条出边,而顶点4没有出边。如果是计算入度矩阵,则相应的对角线元素会反映每个顶点的入边数量。