java迭代加深树上没有递归

时间:2014-03-28 10:35:19

标签: java search iterative-deepening

我目前正在实施深度优先搜索:

protected void algorithmLogic() {
    currentNode = ((Stack<Node>) expanded).pop();
    if(atGoal()) {
        // Goal reached so stop
        return;
    }
    else {
        visited.add(currentNode);
        if(currentNode.hasChild()) {
            for(int i=currentNode.getChildren().size()-1;i>-1;i--) {
                ((Stack<Node>) expanded).push(currentNode.getChildren().get(i));
            }
        }
    }
}

这是在节点上的树上工作。

是否有可能以某种方式编辑此代码,以便执行迭代深化搜索?说限制2?我无法想出跟踪关卡的方法。

1 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人,我在Writing a DFS with iterative deepening without recursion

的帮助下解决了这个问题


在我的实现中,我使用了一个带有节点键的hashmap和一个表示节点级别的整数作为值。