📌  相关文章
📜  python 节点列表的最短路径 site:stackoverflow.com - Python (1)

📅  最后修改于: 2023-12-03 15:04:18.216000             🧑  作者: Mango

Python 节点列表的最短路径

在编写网络应用程序时,寻找两个节点之间的最短路径是一个常见的任务。 在 Python 中,我们可以使用不同的图形库来实现这一点。

以下是使用 networkx 图形库来找到给定节点列表上的最短路径的示例。

import networkx as nx

 # 创建一个空图形
G = nx.Graph()

# 向图形中添加节点
G.add_nodes_from(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'])

# 向图中添加边
G.add_edges_from([('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E'), ('E', 'F'), ('F', 'G'), ('G', 'H'), ('H', 'I')])
G.add_edges_from([('A', 'D'), ('D', 'G'), ('G', 'C'), ('C', 'F'), ('F', 'I'), ('I', 'B'), ('B', 'E')])

# 找到最短路径
shortest_path = nx.shortest_path(G, source='A', target='I')

# 输出找到的最短路径
print(shortest_path)

运行以上代码,输出应为 ['A', 'D', 'C', 'F', 'I']

在上面的代码中,我们首先创建一个 空 networkx 图形,并添加节点和边。然后,我们使用 nx.shortest_path 函数找到从节点 A 到节点 I 的最短路径,并将其存储在名称为 shortest_path 的变量中。

最后,我们打印 shortest_path 变量中存储的最短路径列表。

可以将此示例扩展为使用从文件或数据库中读取的节点列表,而不是硬编码节点列表。