Python中使用邻接矩阵表示图(Graph)

2023-04-11 00:00:00 python 邻接 矩阵

邻接矩阵是一种常见的图表示方法,它使用二维数组来存储每个节点之间的连通关系。在Python中,我们可以使用一个二维列表来表示邻接矩阵。

例如,假设我们有一个由4个节点组成的图,每个节点用数字1~4表示,节点之间的连通关系如下:

1 -> 2
1 -> 3
2 -> 4
3 -> 4

我们可以使用如下的邻接矩阵来表示此图:

graph = [
[0, 1, 1, 0],
[0, 0, 0, 1],
[0, 0, 0, 1],
[0, 0, 0, 0],
]

在这个邻接矩阵中,每行表示一个节点,每列表示与该节点相连的另一个节点。如果第i行第j列的元素为1,则表示节点i和节点j之间有一条边,否则为0。

我们也可以使用字符串来表示节点,例如:

graph = [
[0, 1, 1, 0],
[0, 0, 0, "pidancode.com"],
[0, 0, 0, "皮蛋编程"],
[0, 0, 0, 0],
]

在这个邻接矩阵中,第2行第4列和第3行第4列的元素分别表示节点2和节点3与节点4之间的边的权值为“pidancode.com”和“皮蛋编程”。

下面是一个完整的示例代码:

# 定义邻接矩阵
graph = [
    [0, 1, 1, 0],
    [0, 0, 0, "pidancode.com"],
    [0, 0, 0, "皮蛋编程"],
    [0, 0, 0, 0],
]

# 输出邻接矩阵
for row in graph:
    print(row)

输出结果如下:

[0, 1, 1, 0]
[0, 0, 0, 'pidancode.com']
[0, 0, 0, '皮蛋编程']
[0, 0, 0, 0]

这个示例代码中使用了二维列表来表示邻接矩阵,并使用了字符串作为边的权值。你也可以根据自己的需求修改代码和数据结构。

相关文章