此python代码用于图形以查找所有可能的路径,但不会运行';我不返回任何结果

此python代码用于图形以查找所有可能的路径,但不会运行';我不返回任何结果,python,graph,path,edges,vertices,Python,Graph,Path,Edges,Vertices,因此,我在网上找到了这段代码,当我使用编辑器时,它工作得很好,但是当我将边更改为我正在处理的图形时,它只运行,但没有返回结果,我怀疑我编辑的原始代码中的边数是有限制的 # This class represents a directed graph # using adjacency list representation class Graph: def __init__(self, vertices): # No. of vertices

因此,我在网上找到了这段代码,当我使用编辑器时,它工作得很好,但是当我将边更改为我正在处理的图形时,它只运行,但没有返回结果,我怀疑我编辑的原始代码中的边数是有限制的

# This class represents a directed graph  
# using adjacency list representation 
class Graph: 
   
    def __init__(self, vertices): 
        # No. of vertices 
        self.V = vertices  
          
        # default dictionary to store graph 
        self.graph = defaultdict(list)  
   
    # function to add an edge to graph 
    def addEdge(self, u, v): 
        self.graph[u].append(v)
        g = Graph(111) 
        g.addEdge(4, 5) 
        g.addEdge(4, 6) 
        g.addEdge(4, 7) 
        g.addEdge(5, 8) 
        g.addEdge(5, 8) 
        g.addEdge(6, 10) 
        g.addEdge(6, 12)
        g.addEdge(7, 13)
        g.addEdge(8, 9)
        g.addEdge(9, 6)
        g.addEdge(10, 11)
        g.addEdge(11, 14)
        g.addEdge(11, 15)
        g.addEdge(12, 17)
        g.addEdge(12, 19)
        g.addEdge(13, 18)
        g.addEdge(13, 20)
        g.addEdge(14, 21)
        g.addEdge(14, 22)
        g.addEdge(15, 24)
        g.addEdge(15, 25)
        g.addEdge(17, 23)
        g.addEdge(18, 38)
        g.addEdge(18, 43)
        g.addEdge(19, 26)
        g.addEdge(19, 37)
        g.addEdge(20, 54)
        g.addEdge(21, 56)
        g.addEdge(21, 57)
        g.addEdge(22, 58)
        g.addEdge(22, 59)
        g.addEdge(23, 61)
        g.addEdge(23, 62)
        g.addEdge(24, 60) 
        g.addEdge(25, 64)
        g.addEdge(25, 102)
        g.addEdge(26, 27)
        g.addEdge(26, 115)
        g.addEdge(27, 28)
        g.addEdge(27, 29)
        g.addEdge(28, 35)
        g.addEdge(28, 36)
        g.addEdge(29, 30)
        g.addEdge(29, 31)
        g.addEdge(30, 32)
        g.addEdge(31, 33)
        g.addEdge(31, 34)
        g.addEdge(32, 117)
        g.addEdge(33, 112)
        g.addEdge(34, 113)
        g.addEdge(35, 117)
        g.addEdge(36, 110)
        g.addEdge(37, 108)
        g.addEdge(37, 66)
        g.addEdge(38, 39)
        g.addEdge(39, 40)
        g.addEdge(39, 41)
        g.addEdge(40, 42)
        g.addEdge(40, 103)
        g.addEdge(41, 73)
        g.addEdge(42, 104)
        g.addEdge(42, 105)
        g.addEdge(43, 44)
        g.addEdge(43, 47)
        g.addEdge(44, 45)
        g.addEdge(45, 46)
        g.addEdge(46, 51)
        g.addEdge(46, 53)
        g.addEdge(46, 11)
        g.addEdge(47, 48)
        g.addEdge(47, 49)
        g.addEdge(47, 50)
        g.addEdge(48, 111)
        g.addEdge(49, 117)
        g.addEdge(50, 39)
        g.addEdge(51, 52)
        g.addEdge(52, 117)
        g.addEdge(53, 70)
        g.addEdge(54, 55)
        g.addEdge(55, 77)
        g.addEdge(55, 82)
        g.addEdge(56, 107)
        g.addEdge(57, 110)
        g.addEdge(58, 117)
        g.addEdge(60, 99)
        g.addEdge(60, 100)
        g.addEdge(61, 107)
        g.addEdge(62, 63)
        g.addEdge(63, 115)
        g.addEdge(64, 106)
        g.addEdge(66, 67)
        g.addEdge(67, 68)
        g.addEdge(67, 51)
        g.addEdge(68, 69)
        g.addEdge(68, 71)
        g.addEdge(69, 70)
        g.addEdge(70, 73)
        g.addEdge(70, 74)
        g.addEdge(71, 72)
        g.addEdge(72, 92)
        g.addEdge(73, 11)
        g.addEdge(74, 75)
        g.addEdge(75, 76)
        g.addEdge(75, 82)
        g.addEdge(76, 77)
        g.addEdge(77, 78)
        g.addEdge(77, 80)
        g.addEdge(78, 79)
        g.addEdge(79, 117)
        g.addEdge(80, 81)
        g.addEdge(81, 83)
        g.addEdge(81, 91)
        g.addEdge(82, 115)
        g.addEdge(83, 84)
        g.addEdge(83, 86)
        g.addEdge(84, 85)
        g.addEdge(85, 117)
        g.addEdge(86, 87)
        g.addEdge(87, 88)
        g.addEdge(87, 89)
        g.addEdge(87, 117)
        g.addEdge(88, 117)
        g.addEdge(89, 90)
        g.addEdge(90, 117)
        g.addEdge(91, 117)
        g.addEdge(92, 93)
        g.addEdge(92, 95)
        g.addEdge(93, 94)
        g.addEdge(94, 117)
        g.addEdge(95, 96)
        g.addEdge(95, 98)
        g.addEdge(96, 97)
        g.addEdge(97, 117)
        g.addEdge(98, 117)
        g.addEdge(99, 106)
        g.addEdge(100, 109)
        g.addEdge(102, 117)
        g.addEdge(103, 117)
        g.addEdge(104, 117)
        g.addEdge(105, 117)
        g.addEdge(106, 117)
        g.addEdge(107, 117)
        g.addEdge(108, 117)
        g.addEdge(109, 117)
        g.addEdge(110, 117)
        g.addEdge(111, 117)
        g.addEdge(112, 117)
        g.addEdge(113, 117)
        g.addEdge(114, 117)
        g.addEdge(115, 117)
        g.addEdge(116, 117)
   
    '''A recursive function to print all paths from 'u' to 'd'. 
    visited[] keeps track of vertices in current path. 
    path[] stores actual vertices and path_index is current 
    index in path[]'''
    def printAllPathsUtil(self, u, d, visited, path): 
  
        # Mark the current node as visited and store in path 
        visited[u]= True
        path.append(u) 
  
        # If current vertex is same as destination, then print 
        # current path[] 
        if u == d: 
            print (path) 
        else: 
            # If current vertex is not destination 
            # Recur for all the vertices adjacent to this vertex 
            for i in self.graph[u]: 
                if visited[i]== False: 
                    self.printAllPathsUtil(i, d, visited, path) 
                      
        # Remove current vertex from path[] and mark it as unvisited 
        path.pop() 
        visited[u]= False
   
   
    # Prints all paths from 's' to 'd' 
    def printAllPaths(self, s, d): 
  
        # Mark all the vertices as not visited 
        visited =[False]*(self.V) 
  
        # Create an array to store paths 
        path = [] 
  
        # Call the recursive helper function to print all paths 
        self.printAllPathsUtil(s, d, visited, path) 
        s = 4 ; d = 117
        print ("Following are all different paths from % d to % d :" %(s, d)) 
        g.printAllPaths(s, d) 

您的graph类应该更像这样:

class Graph:    
    def __init__(self, vertices): 
        self.V = vertices  
        self.graph = defaultdict(list)  
   
    def addEdge(self, u, v): 
        self.graph[u].append(v)  # end of method!

    def printAllPathsUtil(self, u, d, visited, path): 
        visited[u]= True
        # ... 

    def printAllPaths(self, s, d): 
        visited = [False] * (self.V) 
        # ...
        self.printAllPathsUtil(s, d, visited, path)  # end of method!
现在,您可以创建其实例并对其调用方法:

g = Graph(111) 
g.addEdge(4, 5) 
g.addEdge(4, 6) 
# ...
s = 4
d = 117
# ...
g.printAllPaths(s, d) 

但是这个代码不应该出现在任何
Graph
class'方法中

请显示缩进,因为它是在您的代码。您是否真的在
addEdge
方法中创建了另一个图形?缩进与代码中的缩进相同,图形不应该在addEdge方法中吗?求你了,我是pythonOk新手谢谢,我会试试这个