gpt4 book ai didi

Java深度优先搜索无限循环

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:12 25 4
gpt4 key购买 nike

我正在尝试用 Java 实现深度优先搜索算法。知道为什么这个方法会进入无限循环吗?谢谢。

public Node search(Graph graph, String nodeName, int ID) {

//Get the root node
Node root = graph.getRoot();

Stack<Node> stack = new Stack<Node>();
//Add the root to the stack
stack.push(root);

while(!stack.isEmpty())
{
Node n = stack.pop();
//Check to see if node n is the requested node
if(n.getName().equals(nodeName))
{
//Found
return n;
}else
{
//Create an array of the leaf nodes to node n
Node[] children = n.getNeighbours();
for(int i =0; i<children.length; i++)
{
//Add the leaf nodes to the stack
stack.push(children[i]);
System.out.println(stack.peek());
}
}
}
//Not found so return null
return null;
}

最佳答案

如果你的图有循环(或者是无向的),你必须在访问它们之后“标记”节点,否则你会一直回到它们。

关于Java深度优先搜索无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071909/

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