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]);
    
        }
    }
    

    感谢

    尚硅谷

    万能的网络

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

  • 相关阅读:
    PHP实现无限极分类
    html2canvas生成并下载图片
    一次线上问题引发的过程回顾和思考,以更换两台服务器结束
    Intellij IDEA启动项目报Command line is too long. Shorten command line for XXXApplication or also for
    mq 消费消息 与发送消息传参问题
    idea 创建不了 java 文件
    Java switch 中如何使用枚举?
    Collections排序
    在idea 设置 git 的用户名
    mongodb添加字段和创建自增主键
  • 原文地址:https://www.cnblogs.com/guizimo/p/13438811.html
Copyright © 2011-2022 走看看