我编写了一个程序,该程序计算给定图中5个最大SCC的大小。图中的节点数为875714。以下是我在问题中使用的基本DFS代码。 (两个函数都是类中的方法)
def DFSloop(self): exp = [False] * (self.size + 1) for i in range(1,(self.size + 1)): if exp[i] == False: self.DFS(i, exp) def DFS(self, s, exp): exp[s] = True for vertex in self.g[s]: if exp[vertex] == False: self.DFS(vertex, exp)
基本上,DFS必须递归很多,因为节点和边缘的数量很大。即使将递归限制设置为10,000,也显示以下错误
RuntimeError: maximum recursion depth exceeded in cmp
然后将限制增加到100,000,它显示:
Segmentation fault: 11
然后系统崩溃。对克服这种情况有帮助吗?
我编写了一个程序,该程序计算给定图中5个最大SCC的大小。图中的节点数为875714。以下是我在问题中使用的基本DFS代码。 (都...
我通过使用堆栈而不是使用递归来克服了类似的问题。