zoukankan      html  css  js  c++  java
  • 数据结构--数组存储二叉树(Java)

    数据结构--数组存储二叉树(Java)

    博客说明

    文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

    顺序存储二叉树的特点

    • 顺序二叉树通常只考虑完全二叉树
    • 第n个元素的左子节点为 2 * n + 1
    • 第n个元素的右子节点为 2 * n + 2
    • 第n个元素的父节点为 (n-1) / 2

    代码

    package cn.guizimo.tree;
    
    /**
     * @author guizimo
     * @date 2020/8/5 11:09 上午
     */
    public class ArrTree {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3, 4, 5, 6, 7};
            ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr);
            arrBinaryTree.preOrder();
        }
    }
    
    class ArrBinaryTree {
        private int[] arr;
    
        public ArrBinaryTree(int[] arr) {
            this.arr = arr;
        }
        public void preOrder(){
            this.preOrder(0);
        }
      
      	//前序
        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(2 * index + 1);
            }
            //右递归
            if ((index * 2 + 2) < arr.length) {
                preOrder(2 * index + 2);
            }
        }
    
    		//中序
        public void preOrder(int index) {
            if (arr == null || arr.length == 0) {
                System.out.println("数组为空");
            }
            //左递归
            if ((index * 2 + 1) < arr.length) {
                preOrder(2 * index + 1);
            }
          	System.out.println(arr[index]);
            //右递归
            if ((index * 2 + 2) < arr.length) {
                preOrder(2 * index + 2);
            }
        }
      
      	//后序
        public void preOrder(int index) {
            if (arr == null || arr.length == 0) {
                System.out.println("数组为空");
            }
            //左递归
            if ((index * 2 + 1) < arr.length) {
                preOrder(2 * index + 1);
            }
            //右递归
            if ((index * 2 + 2) < arr.length) {
                preOrder(2 * index + 2);
            }
            System.out.println(arr[index]);
    
        }
    }
    

    感谢

    尚硅谷

    万能的网络

    以及勤劳的自己
    关注公众号: 归子莫,获取更多的资料,还有更长的学习计划

  • 相关阅读:
    104.Maximum Depth of Binary Tree
    103.Binary Tree Zigzag Level Order Traversal
    102.Binary Tree Level Order Traversal
    101.Symmetric Tree
    100.Same Tree
    99.Recover Binary Search Tree
    98.Validate Binary Search Tree
    97.Interleaving String
    static静态初始化块
    serialVersionUID作用
  • 原文地址:https://www.cnblogs.com/guizimo/p/13438811.html
Copyright © 2011-2022 走看看