gpt4 book ai didi

java - 堆栈溢出错误-java

转载 作者:行者123 更新时间:2023-12-02 05:55:33 24 4
gpt4 key购买 nike

我正在编写一个代码来在图上运行 DFS,但是这些图很大。我在 DFS 访问时遇到堆栈溢出错误,但其他人能够毫无问题地运行 DFS 访问。有什么原因会导致我收到 StackOverFlow 错误吗?我尝试分配更多内存(我有 16GB RAM),但它限制了我 1GB RAM。

public void DFSVisit(Graph <String, String> graph, String current, int [] data, StackObject [] finish, boolean complicated){
//data stores the time
data[9]++;
graph.setAnnotation(current, "time", data[9]);
graph.setAnnotation(current, "color", "gray");
Iterator <ArrayList<String>> itr = graph.outAdjacentVertices(current);
ArrayList <String> currentlist = null;
String adjacent;
while(itr.hasNext()){
currentlist = itr.next();
adjacent = currentlist.get(1);
if(graph.getAnnotation(adjacent, "color").equals("white")){
graph.setAnnotation(adjacent, "parent", current);
DFSVisit(graph, adjacent, data, finish, complicated);
}
}
graph.setAnnotation(current, "color", "black");
data[9]++;
graph.setAnnotation(current, "done", data[9]);
finish[0].done.push(current);
//System.out.println(current);
}

最佳答案

分配内存没有帮助。您在同一方法内调用 DFSVisit,并且没有为该方法定义返回条件,因此它将引发 stackoverflow 错误。

关于java - 堆栈溢出错误-java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23124525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com