3
我正在嘗試實現tarjan的算法。 我決定生成一個隨機圖作爲算法的輸入,一次添加一條邊。網絡x中邊緣列表的自定義輸出
我生成的隨機圖形,並在文件中保存它,如下圖所示
from networkx import *
import sys
import matplotlib.pyplot as plt
n = 10 # 10 nodes
m = 20 # 20 edges
G = gnm_random_graph(n, m)
# print the adjacency list to a file
try:
nx.write_edgelist(G, "test.edgelist", delimiter=',')
except TypeError:
print "Error in writing output to random_graph.txt"
fh = open("test.edgelist", 'rb')
G = nx.read_adjlist(fh)
fh.close()
,我在test.edgelist文件得到的是這樣的輸出。
0,4,{}
0,5,{}
0,6,{}
1,8,{}
1,3,{}
1,4,{}
1,7,{}
2,8,{}
2,3,{}
2,5,{}
3,8,{}
3,7,{}
4,8,{}
4,9,{}
5,8,{}
5,9,{}
5,7,{}
6,8,{}
6,7,{}
7,9,{}
如何過,在我已經實現了的Tarjan的算法,輸入格式爲
add_edge(1,2)
add_edge(2,3)
....
我希望用在一個循環中隨機生成的圖形,得到輸入。
如何獲取{}? 此外,如果有一些更好的方法來實現這一點,請幫助,因爲對於海量數據集,難以將其保存爲單個列表(add_edge()將邊緣添加到列表中)