二叉树遍历

基于 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);
    }
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容