Python中使用邻接矩阵表示图(Graph)
邻接矩阵是一种常见的图表示方法,它使用二维数组来存储每个节点之间的连通关系。在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]
这个示例代码中使用了二维列表来表示邻接矩阵,并使用了字符串作为边的权值。你也可以根据自己的需求修改代码和数据结构。
相关文章