顺序存储二叉树

大纲:

  1. 概念
  2. 遍历

一、概念

  • 顺序存储二叉树就是用数组的方式来表示一颗完全二叉树
  • 第n个节点的左子树是2n+1,右子树是2n+2
  • 第n个节点的父节点是(n-1)/2

二、遍历

public class ArrayBinaryTree {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7};
        preOrder(arr,0);//前序遍历 1245367
        midOrder(arr,0);//中序遍历 4251637
        postOrder(arr,0);//后序遍历 4526731
    }

    public static void preOrder(int[] arr,int index){
        System.out.print(arr[index]);
        if ((index*2+1)<arr.length) {
            preOrder(arr,index*2+1);
        }
        if ((index*2+2)<arr.length) {
            preOrder(arr,index*2+2);
        }
    }

    public static void midOrder(int[] arr,int index){
        if ((index*2+1)<arr.length) {
            midOrder(arr,index*2+1);
        }
        System.out.print(arr[index]);
        if ((index*2+2)<arr.length) {
            midOrder(arr,index*2+2);
        }
    }

    public static void postOrder(int[] arr,int index){
        if ((index*2+1)<arr.length) {
            postOrder(arr,index*2+1);
        }
        if ((index*2+2)<arr.length) {
            postOrder(arr,index*2+2);
        }
        System.out.print(arr[index]);
    }
}

 

posted @ 2021-04-17 16:51  扶不起的刘阿斗  阅读(120)  评论(0编辑  收藏  举报