java BFS和DFS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java BFS和DFS相关的知识,希望对你有一定的参考价值。

//A simple BFS and DFS recursion in Java:
//Just push/offer the root node of the tree in the stack/queue and call these functions.

public static void breadthFirstSearch(Queue queue) {

    if (queue.isEmpty())
        return;

    Node node = (Node) queue.poll();

    System.out.println(node + " ");

    if (node.right != null)
        queue.offer(node.right);

    if (node.left != null)
        queue.offer(node.left);

    breadthFirstSearch(queue);
}

public static void depthFirstSearch(Stack stack) {

    if (stack.isEmpty())
        return;

    Node node = (Node) stack.pop();

    System.out.println(node + " ");

    if (node.right != null)
        stack.push(node.right);

    if (node.left != null)
        stack.push(node.left);

    depthFirstSearch(stack);
}

以上是关于java BFS和DFS的主要内容,如果未能解决你的问题,请参考以下文章

DFS和BFS(无向图)Java实现

BFS和DFS的java实现

51-迷宫- java版dfs和bfs

深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现

挑战程序设计竞赛(算法和数据结构)——15.2拓扑排序(dfs,bfs)的JAVA实现

(HW)DFS与BFS(Java)