美文网首页
数据结构专题:2.二叉树的遍历,深度优先,广度优先

数据结构专题:2.二叉树的遍历,深度优先,广度优先

作者: 北交吴志炜 | 来源:发表于2019-03-10 16:46 被阅读0次

1.先序遍历,非递归(利用stack)

public static void queryBtree(Node root){
  LinkedList<Node> stack = new LinkedList<Node>();
  stack.push(root);
  while(!stack.isEmpty()){
  Node currentNode = stack.pop();
  System.out.print(currentNode.value+" ");
  if(currentNode.right!=null){
  stack.push(currentNode.right);
  if(currentNode.left!=null){
  stack.push(currentNode.left);
  }
  }
}

2.中序遍历,非递归

public void queryBtree(Node<E> root) {
        LinkedList<Node<E>> stack = new LinkedList<Node<E>>();
        Node currentNode = root;
        while (!stack.isEmpty()||currentNode!=null) {
            while(currentNode!=null){
                stack.push(currentNode);
                currentNode = currentNode.left;
            }
            currentNode = stack.pop();
            System.out.print(currentNode.value + " ");
            currentNode = currentNode.right;

        }
    }

3.广度优先

public void queryBtree(Node<E> root) {
        LinkedList<Node<E>> queue = new LinkedList<Node<E>>();
        queue.offer(root);
        while (!queue.isEmpty()) {
            Node<E> currentNode = queue.poll();
            System.out.print(currentNode.value+" ");
            if(currentNode.left!=null){
                queue.offer(currentNode.left);
            }
            if(currentNode.right!=null){
                queue.offer(currentNode.right);
            }
        }
    }

深度利用栈,广度利用queue

相关文章

  • 5. 深度优先、广度优先

    1. 二叉树的深度优先遍历和广度优先遍历2. 深度优先搜索递归和非递归实现 深度优先(DFS):前序遍历 广度优先...

  • 二叉树遍历

    二叉树的遍历,分为深度优先遍历和广度优先遍历,其中深度优先遍历又分为有前序、中序、后序遍历,广度优先遍历就是按层遍...

  • 【数据结构】广度优先搜索算法BFS

    对于广度优先遍历算法DFS可以参考前一篇文章【数据结构】深度优先搜索算法DFS 广度优先遍历 广度优先遍历(Bre...

  • 5,DFS、BFS

    引用数据结构二叉树的概念:深度优先搜索类似前序遍历、广度优先搜索类似层次遍历 用遍历DOM为例来说明:深度的核心代...

  • 遍历二叉树

    创建二叉树数据结构: 深度优先遍历和广度优先遍历 前序遍历:先遍历根结点,然后左子树,再右子树中序遍历:先遍历左子...

  • 二叉树遍历

    二叉树的遍历分为深度优先遍历(Depth First Traversal)和广度优先遍历(Breath First...

  • 深度优先遍历和广度优先遍历

    以html节点为列进行深度优先和广度优先遍历 1. 深度优先遍历 递归 非递归,栈表示法 2. 广度优先遍历 队列表示法

  • js-树的遍历

    数据 广度优先遍历 深度优先遍历 深度优先不递归

  • 前端面试考点之数据结构

    1、深度优先和广度优先的区别 1) 二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法...

  • 图的遍历,golang实现

    广度优先遍历 深度优先遍历

网友评论

      本文标题:数据结构专题:2.二叉树的遍历,深度优先,广度优先

      本文链接:https://www.haomeiwen.com/subject/fhoupqtx.html