zoukankan      html  css  js  c++  java
  • 二叉树的遍历

     1 import java.util.LinkedList;
     2 
     3 public class BinaryTreeErgodic {
     4 
     5     /**
     6      * 层次优先遍历
     7      */
     8     public static void lavelOrderTraverse(TreeNode root) {
     9         if (root == null)
    10             return;
    11 
    12         LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
    13         TreeNode current = null;
    14         queue.offer(root);
    15         while (!queue.isEmpty()) {
    16             current = queue.poll();
    17             System.out.print(current.value + " ");
    18             if (current.left != null)
    19                 queue.offer(current.left);
    20             if (current.right != null)
    21                 queue.offer(current.right);
    22         }
    23     }
    24 
    25     /**
    26      * 先序遍历
    27      */
    28     public static void preOrderTraverse(TreeNode node) {
    29         if (node == null)
    30             return;
    31         System.out.print(node.value + " ");
    32         preOrderTraverse(node.left);
    33         preOrderTraverse(node.right);
    34     }
    35 
    36     /**
    37      * 中序遍历
    38      */
    39     public static void inOrderTraverse(TreeNode node) {
    40         if (node == null)
    41             return;
    42         inOrderTraverse(node.left);
    43         System.out.print(node.value + " ");
    44         inOrderTraverse(node.right);
    45     }
    46 
    47     /**
    48      * 后序遍历
    49      */
    50     public static void postOrderTraverse(TreeNode node) {
    51         if (node == null)
    52             return;
    53         postOrderTraverse(node.left);
    54         postOrderTraverse(node.right);
    55         System.out.print(node.value + " ");
    56     }
    57 }
    58 
    59 class TreeNode {
    60 
    61     int value;
    62 
    63     public TreeNode(int value) {
    64         this.value = value;
    65     }
    66 
    67     TreeNode left = null;
    68     TreeNode right = null;
    69 }

    上述代码分别实现了二叉树的:层次优先遍历、前序遍历(先序遍历)、中序遍历、后序遍历,具体原理大家都明白

  • 相关阅读:
    android switch控件的使用
    触摸屏校准tslib的配置文件
    matlab 函数的编写与调用
    penmount串口触摸屏加载
    FPGA保留信号的语句
    ioctl和unlock_ioctl的区别
    内核目录中增加自己的目录
    linux内核打印"BUG: scheduling while atomic
    28335外部中断
    编译QT时出现lib/libQtGui.so: undefined reference to `ts_read_raw'的解决办法
  • 原文地址:https://www.cnblogs.com/joshua-aw/p/6011794.html
Copyright © 2011-2022 走看看