来自邻接表的 Networkx BFS_Tree

Networkx BFS_Tree from adjacency list

我是 networkx 的新手,我想做的是从 .txt 邻接列表生成图表(成功),然后在所述列表上执行 bfs_tree。 dfs_tree 有效,但 bfs returns 错误说我的源节点不在图中。我知道为什么,我只需要知道如何让它工作。

import networkx as nx
import matplotlib.pyplot as plt
   
G = nx.read_adjlist("AL.txt")

nx.draw(G, with_labels=True)
plt.show()

T = nx.dfs_tree(G)
nx.draw(T, with_labels=True)
plt.show()

T2 = nx.bfs_tree(G, source=1)
nx.draw(T2, with_labels=True)
plt.show()

.txt文件中的数据为:

1 2 4 5
2 1 4 3
3 2 4 6
4 1 2 3 5 6 7
5 1 4 7 8
6 3 4 7 10
7 4 5 6 10 8
8 5 7 9
9 8 10
10 6 7 9

如果您阅读文本文件,节点的默认类型是字符串。因此,您可以通过添加节点类型来解决问题,请参阅 read_adjlist:

的文档
G = nx.read_adjlist("AL.txt", nodetype=int)

或通过从 "1" 构建 bfs_tree:

T2 = nx.bfs_tree(G, source="1")