没有堆栈的DFS(递归)

时间:2014-05-06 01:09:45

标签: recursion stack queue depth-first-search

我没有堆栈/队列快速搜索DFS / BFS。我相信我错过了一些东西。 我正在为DFS写一个小方法:

static void DFS(TreeNode41 starting) {
    System.out.println(starting.value);

    if (starting.left!=null && !starting.left.visited) {
        DFS(starting.left);
    }

    if (starting.right!=null && !starting.right.visited) {
        DFS(starting.right);
    }

    //Reached a leaf
    if (starting.left == null & starting.right == null) {
        //
    }
}

其中TreeNode41是二进制节点,具有左右引用。当递归函数无处可去时,它甚至不需要检查已访问或未访问,它会弹出,这类似于堆栈。 此算法以DFS方式遍历二叉树。但是我觉得我错过了什么。当一个非递归地实现DFS时,是否需要堆栈数据结构?或者是,这个算法不适用于循环图或不是树的东西吗?

任何指针都将不胜感激。谢谢!

0 个答案:

没有答案