码迷,mamicode.com
首页 > 其他好文 > 详细

顺序存储二叉树

时间:2021-02-27 13:26:43      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:中序遍历   rate   输出   完成   col   xor   err   递归遍历   span   

package com.dai.tree;

public class ArrBinaryTreeDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] arr = {1,2,3,4,5,6,7};
        //创建一个arrbinarytree对象
        ArrBinarTree arrBinarTree = new ArrBinarTree(arr);
        System.err.println("前序遍历:");
        arrBinarTree.preOrder();
        System.out.println("中序遍历:");
        arrBinarTree.infixOrder();
        System.out.println("后续遍历:");
        arrBinarTree.postOrder();
    }
}
//写一个arrbianrytree,实现顺序存储二叉树的遍历
class ArrBinarTree {
    private int[] arr; //存储数据节点的数组

    public ArrBinarTree(int[] arr) {
        this.arr = arr;
    }
    
    //重载preOrder
    public void preOrder() {
        this.preOrder(0);
    }
    public void infixOrder() {
        this.infixOrder(0);
    }
    public void postOrder() {
        this.postOrder(0);
    }
    //编写一个方法,完成顺序存储二叉树的一个前序遍历
    //index表示数组的下标
    public void preOrder(int index) {
        //如果数组未空,或者arr.length=0
        if(arr ==null || arr.length == 0) {
            System.out.println("数组为空,不能按照二叉树的前序遍历");
        }
        //输出当前元素
        System.out.println(arr[index]);
        //向前递归遍历
        if((index*2+1) < arr.length) {
            preOrder(2*index + 1);
        }
        //向右递归遍历
        if(index*2+2 < arr.length) {
            preOrder(2*index+2);
        }
    }
    //编写一个方法,完成顺序存储二叉树的一个中序遍历
    public void infixOrder(int index) {
        if(arr == null || arr.length == 0) {
            System.out.println("数组为空,不能遍历");
        }
        if((index*2+1) < arr.length) {
            infixOrder(2*index+1);
        }
        System.out.println(arr[index]);
        
        if((index*2+2) < arr.length) {
            infixOrder(index*2 +2);
        }
    }
    //编写一个方法,完成顺序存储二叉树的一个中序遍历
    public void postOrder(int index) {
        if(arr == null || arr.length == 0) {
            System.out.println("数组为空,不能遍历");
        }
        if((index*2+1)<arr.length) {
            postOrder(index*2+1);
        }
        if((index*2+2) < arr.length) {
            postOrder(index*2 + 2);
        }
        System.out.println(arr[index]);
    }
    
}

 

顺序存储二叉树

标签:中序遍历   rate   输出   完成   col   xor   err   递归遍历   span   

原文地址:https://www.cnblogs.com/shengtudai/p/14454506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!