顺序存储二叉树(java)

简介: 顺序存储二叉树(java)

public class ArrBinaryTree {
    private int[] arr;
 
    public ArrBinaryTree(int[] arr) {
        this.arr = arr;
    }
 
    public void preOrder() {
        preOrder(0);
    }
 
    /**
     * 顺序存储二叉树的前序遍历
     *
     * @param index
     */
    public void preOrder(int index) {
        //    如果输入为空
        if (arr == null && arr.length == 0) {
            System.out.println("数组为空,不能按照二叉树的前序遍历");
        }
        System.out.println(arr[index]);
        //    向左递归遍历
        if ((index * 2 + 1) < arr.length) {
            preOrder(index * 2 + 1);
        }
        //    向右递归遍历
        if ((index * 2 + 2) < arr.length) {
            preOrder(index * 2 + 2);
        }
    }
 
    /**
     * 顺序存储二叉树的中序遍历
     *
     * @param index
     */
    public void infixOrder(int index) {
        //    如果输入为空
        if (arr == null && arr.length == 0) {
            System.out.println("数组为空,不能按照二叉树的前序遍历");
        }
 
        //    向左递归遍历
        if ((index * 2 + 1) < arr.length) {
            preOrder(index * 2 + 1);
        }
        System.out.println(arr[index]);
        //    向右递归遍历
        if ((index * 2 + 2) < arr.length) {
            preOrder(index * 2 + 2);
        }
    }
 
    /**
     * 顺序存储二叉树的后序遍历
     *
     * @param index
     */
    public void postOrder(int index) {
        //    如果输入为空
        if (arr == null && arr.length == 0) {
            System.out.println("数组为空,不能按照二叉树的前序遍历");
        }
 
        //    向左递归遍历
        if ((index * 2 + 1) < arr.length) {
            preOrder(index * 2 + 1);
        }
        //    向右递归遍历
        if ((index * 2 + 2) < arr.length) {
            preOrder(index * 2 + 2);
        }
        System.out.println(arr[index]);
    }
}

测试

 public class ArrBinaryTreeDemo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        ArrBinaryTree tree = new ArrBinaryTree(arr);
        tree.preOrder();
    }
}
1
2
4
5
3
6
7
目录
相关文章
|
2月前
|
算法 Java
算法:Java计算二叉树从根节点到叶子结点的最大路径和
算法:Java计算二叉树从根节点到叶子结点的最大路径和
|
2月前
|
Java
Java二叉树超详解(常用方法介绍)(2)
Java二叉树超详解(常用方法介绍)(2)
|
2月前
|
存储 Java
JAVA 二叉树超详解(1)
JAVA 二叉树超详解(1)
|
9天前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
17 4
|
2月前
|
Java
Tree Traversals Again(Java语言)(先序和中序创建二叉树)(遍历树)
Tree Traversals Again(Java语言)(先序和中序创建二叉树)(遍历树)
28 4
|
2月前
|
存储 Java
ZigZagging on a Tree二叉树蛇形层次遍历(Java语言)
ZigZagging on a Tree二叉树蛇形层次遍历(Java语言)
23 1
|
2月前
|
存储 Java
Java实现二叉树
Java实现二叉树
29 0
|
8天前
|
Java
Java二叉树的遍历
Java二叉树的遍历
|
13天前
|
算法 Java 索引
【算法】重建二叉树并进行后序遍历的Java实现
【算法】重建二叉树并进行后序遍历的Java实现
18 5
|
11天前
|
算法 搜索推荐 Java
二叉树的基本概念、常见操作以及如何使用Java代码
二叉树的基本概念、常见操作以及如何使用Java代码
10 1