1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
   | import networkx as nx from networkx.drawing.tests.test_pylab import plt
 
  def Dijkstra(G, start, end):     RG = G.reverse();     dist = {};     previous = {}     for v in RG.nodes():         dist[v] = float('inf')         previous[v] = 'none'     dist[end] = 0     u = end     while u != start:         u = min(dist, key=dist.get)         distu = dist[u]         del dist[u]         for u, v in RG.edges(u):             if v in dist:                 alt = distu + RG[u][v]['weight']                 if alt < dist[v]:                     dist[v] = alt                     previous[v] = u     path = (start,)     last = start     while last != end:         nxt = previous[last]         path += (nxt,)         last = nxt     return path
  G = nx.Graph() a=[('你是','E11'),('你是','因为'),('你是','36D}'),('羽','E11'),('羽','E10'),('羽','E13'),('羽','E12'),('羽','E14'),('羽','因为'),('羽','E7'),('羽','E6'),('E10','Cyz'),('E10','奝'),('E10','anweilx'),('E10','群主'),('admin','E7'),('admin','E12'),('admin','因为'),('admin','E8'),('E12','奝'),('E12','群主'),('E12','Cyz'),('E12','奝'),('E14','Cyz'),('E14','36D}'),('E14','群主'),('printf','E5'),('printf', 'E6'), ('printf', 'E8'), ('printf', '爱你'), ('frank', '因为'), ('frank', 'E8'), ('不是', '因为'),('不是', 'E8'),('不是', 'E5'), ('不是', 'E4'), ('不是', 'E6'), ('不是', 'E1'), ('不是', '爱你'),('不是','E2'),('joker','E5'),('joker','E7'),('joker','因为'),('joker','E8'),('奝','E11'),('奝','E7'),('奝','E8'),('biu','E11'),('biu','因为'),('烟雨','E5'),('烟雨','E7'),('烟雨','E6'),('烟雨','E8'),('因为','就是'),('因为', 'K'), ('因为', '群主'), ('因为', 'Cyz'), ('因为', '奝'), ('E8', '就是'), ('E8', 'K'), ('E8', '群主'), ('E8', 'Cyz'),('E8', 'imagin'), ('E8', 'P3rh4ps'), ('E8', 'yaLddel'), ('E5', '就是'), ('E5', 'imagin'),('E5','P3rh4ps'),('E5','w1nd'),('E4','w1nd'),('E4','就是'),('E4','imagin'),('E7','就是'),('E7','Cyz'),('E7','imagin'),('E7','P3rh4ps'),('E7','w1nd'),('E6','就是'),('E6','K'),('E6','imagin'),('E6','P3rh4ps'),('E1','P3rh4ps'),('E1','imagin'),('爱你','就是'),('爱你','imagin'),('爱你','P3rh4ps'),('爱你','w1nd'),('爱你','flag{'),('E2','P3rh4ps'),('E2','就是'),('群主','E13'),('E13','Cyz')] b=[] c=[] for i in a:     b.append(i[0])     c.append(i[1]) for i in range(len(b)):      G.add_edge(b[i],c[i],weight=1) print('图中所有的边', G.edges()) print("________________________________________") print(list(nx.all_shortest_paths(G,source='flag{', target='36D}')))
   |