美文网首页
二叉树算法之3-二叉树的遍历(递归、非递归)

二叉树算法之3-二叉树的遍历(递归、非递归)

作者: 旭仔_2e16 | 来源:发表于2018-10-08 16:24 被阅读0次

方法一:递归遍历

public void print(Node node){
  if(node!=null){
    System.out.println(node.value);//先序遍历
    print(node.left);
    //System.out.println(node.value);//中序遍历
    print(node.right);
    //System.out.println(node.value);//后序遍历
  }
}

方法二:非递归遍历
算法思想:使用栈。

1、先序遍历
public void print(Node node){
    Stack stack=new Stack<Node<T>>();
    while(node!=null || !stack.isEmpty){
        while(node!=null){
            System.out.println(node.getValue);//先序遍历
            stack.push(node);
            node=node.left;
        }
     if(!stack.isEmpty()){
            node=stack.pop();
            System.out.println(node.value);
            node = node.right;
        }
    }
}

内层循环用来存储节点,外层循环将内层循环的存储不断地转至节点的右树中。总的思想就是先压栈,然后出栈的时候再依次压入弹出节点的右树中的左树,以此类推。

2、中序遍历
public void print(Node node){
    Stack stack=new Stack<Node<T>>();
    while(node!=null || !stack.isEmpty){
        while(node!=null){
            stack.push(node);
            node=node.left;
        }
        if(!stack.isEmpty()){
            node=stack.pop();
            System.out.println(node.value);
            node = node.right;
        }
    }
}

相关文章

  • 二叉树遍历-JAVA实现

    基础二叉树 二叉树遍历分为前序、中序、后序递归和非递归遍历、还有层序遍历。 前序递归遍历算法:访问根结点-->递归...

  • 算法之二叉树

    二叉树之C++实现 创建二叉树 复制二叉树 先序遍历 递归实现 非递归实现 中序遍历 递归实现 非递归实现 后序遍...

  • 二叉树的三种深度优先遍历算法与思路

    看了一些关于二叉树遍历算法的文章,例如:二叉树三种遍历方式的递归和循环实现二叉树的递归与非递归遍历(前序、中序、后...

  • 二叉树遍历(递归算法和非递归算法)

    实验三 二叉树遍历(递归算法和非递归算法) 一.实验目的 1.掌握二叉树的存储结构与基本操作 2.掌握二叉树的遍历...

  • 二叉树遍历java,非递归、层次。

    /** * 前序遍历 * 递归 */ /*** 前序遍历* 非递归*/ 后续遍历非递归 二叉树层次遍历基于java...

  • 总结

    1、二叉树广度遍历(非递归) 广度遍历非递归实现需要依靠一个队列。 2、二叉树深度遍历(递归与非递归,前序,中序和...

  • 二叉树递归非递归遍历算法整理

    一、二叉树前序遍历 1 前序递归遍历 2.前序非递归遍历 一、二叉树中序遍历 2.中序递归遍历 1.中序非递归遍历...

  • 二叉树,非递归法

    递归法 二叉树的递归,有前序遍历、中序遍历、后序遍历,一般采用递归法,比较简单 非递归法 二叉树非递归法,采用栈来实现

  • 2020-09-23

    二叉树前序遍历几种写法 递归 非递归

  • 深入浅出二叉树遍历的非递归算法 2019-11-15(未经允许,

    1、二叉树遍历的递归算法 递归实现二叉树的遍历非常直观,回顾一下递归的代码: 前序遍历 中序遍历 后序遍历 他们的...

网友评论

      本文标题:二叉树算法之3-二叉树的遍历(递归、非递归)

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