【发布时间】:2014-04-12 20:25:59
【问题描述】:
我有一个 DFS 搜索,现在我正在尝试用这个 DFS 实现迭代深化搜索,但我真的不明白我应该做什么。我尝试了很多方法,但最后我发现它是错误的!您对我应该做哪些改变有什么建议吗?
public void dfs()
{
Stack s=new Stack();
s.push(this.rootNode);
rootNode.visited=true;
printNode(rootNode);
while(!s.isEmpty())
{
Node n=(Node)s.peek();
Node child=getUnvisitedChildNode(n);
if(child!=null)
{
child.visited=true;
printNode(child);
s.push(child);
}
else
{
s.pop();
}
}
clearNodes();
}
【问题讨论】:
-
你的 dfs 函数没有搜索任何东西,它只是遍历整个图。
-
是的,没错,我也想要同样的迭代深化搜索
-
如果没有达到的目标,那么做 ids 是没有意义的
-
为什么?在每个级别中,它都完全运行 DFS。分别为 0、1、2、... 级的 DFS。
-
@user2944170 你在遍历什么数据结构?二叉树还是别的什么?
标签: java search iterative-deepening