来自邻接表的 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")
我是 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")