美文网首页
二叉树遍历

二叉树遍历

作者: flyHunter雄 | 来源:发表于2017-04-20 21:09 被阅读0次

基于 java 的二叉树遍历:二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。

下面是二叉树有前、中、后三种遍历方式;

 public class Nodetest {
     //后序遍历的容器
  static ArrayList<Node> list2 = new ArrayList<Node>();
    //前序遍历的容器
  static List<Integer> list = new ArrayList<Integer>();
  public static void main(String[] args) {
    
    Node t1= new Node(1);
    Node t2= new Node(2);
    Node t3= new Node(3);
    Node t4= new Node(4);
    Node t5= new Node(5);
    Node t6= new Node(6);
    Node t7= new Node(7);
    t1.left=t2;
    t1.right=t3;
    t2.left=t4;
    t2.right=t5;
    t3.left=t6;
    t3.right=t7;
    t4.left =null;
    t4.right=null;
    t6.left=null;
    t6.right=null;
    t7.left=null;
    t7.right=null;
    
   // 前序遍历测试
    headFun(t1);
    for (int n : list) {
        System.out.print(n+",  ");
    }
    System.out.println();
    // 后序序遍历测试
    beforeFun(t1);
    for (Node n : list2) {
        System.out.print(n.value+".  ");
    }
    
    System.out.println();
    list2.clear();
    centreFun(t1);
    for (Node n : list2) {
        System.out.print(n.value+",  ");
    }
}

  /**
 * 前序遍历
 * 二叉树的前序遍历的递归调用 根节点 -> 左支->右支
 * @param Node
 *
 */
public static void headFun(Node nodeHead){
    if(nodeHead != null){
        list.add(nodeHead.value);
    }
    if(nodeHead.left != null){
        headFun(nodeHead.left);
    }
    if(nodeHead.right != null){
        headFun(nodeHead.right);
    }
 }
/**
 * 后续遍历 
 * 二叉树的前序遍历的递归调用  左支->右支->根
 * @param Node
 */
 public static void beforeFun(Node node){
    if(node != null){
       if(node.left != null){
           beforeFun(node.left);
         }
       if(node.right != null){
         beforeFun(node.right);
         }
       list2.add(node);
    }
}
/**
 * 中序遍历
 * 左支--根--右支
 * @param pHead
 */
public static void centreFun(Node node){
    if(node != null){
        if(node.left != null)
            centreFun(node.left);
        list2.add(node);
        if(node.right != null)
            centreFun(node.right);
    }
  }
}

相关文章

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 二叉树遍历

    二叉树 二叉树的存储结构 前序遍历 中序遍历 后序遍历 遍历代码 反转二叉树 深入学习二叉树 二叉树-你必须要懂!...

  • 二叉树操作

    树节点 逐行顺序解析二叉树 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 删除指定数值的节点 前序遍历顺序存储的...

  • 数据结构与算法之二叉树遍历(七)

    目录 前序遍历中序遍历后序遍历层序遍历遍历方式的选择条件根据遍历结果重构二叉树翻转二叉树计算二叉树的高度判断一棵树...

  • 二叉树三种遍历Swift代码实现

    二叉树的三种遍历 二叉树 前序遍历 中序遍历 后序遍历 另外 不得不说,得到二叉树的前序遍历和中序遍历的结果或者后...

  • 二叉树的遍历

    二叉树的遍历 二叉树遍历 分为前序遍历、中序遍历和后序遍历。 前序遍历 (DLR) 先访问根节点,然后前序遍历左子...

  • 前端二叉树

    (一)构造二叉树 (二)中序遍历 (三)前序遍历 前序遍历可以复制二叉树,效率比重新构造二叉树高 (四)后序遍历 ...

  • 数据结构:树的实现和遍历(c++)

    (一)二叉树的遍历——递归实现 二叉树常见的遍历方式分为前序遍历、中序遍历和后序遍历。 1 前序遍历 前序遍历也叫...

  • leetcode 144 145 94

    二叉树遍历 前序遍历 中序遍历 后序遍历

网友评论

      本文标题:二叉树遍历

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