📅  最后修改于: 2023-12-03 15:04:18.216000             🧑  作者: Mango
在编写网络应用程序时,寻找两个节点之间的最短路径是一个常见的任务。 在 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
变量中存储的最短路径列表。
可以将此示例扩展为使用从文件或数据库中读取的节点列表,而不是硬编码节点列表。