简介
数组存储方式和树的存储方式可以相互转换
二叉树的顺序存储结构就是一维数组存储二叉树中的节点,并且节点的存储位置,也就是数组下标要能体现节点之间的关系,比如双亲和孩纸的关系。左右兄弟关系等。
顺序存储二叉树的特点:
- 顺序二叉树通常只考虑完全二叉树
- 数组中下标为n的元素的左子节点对应在数组中的下标为 2 * n + 1
- 数组中下标为n的元素的右子节点对应在数组中的下标为 2 * n + 2
- 数组中下标为n的元素的父节点对应在数组中的下标为 (n-1) / 2
代码实现:
package com.xawl.tree;
//顺序二叉树
public class ArrBinaryTreeDemo {
public static void main(String[] args) {
int[] arr = {
1, 2, 3, 4, 5, 6, 7};
ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr);
//arrBinaryTree.preOrder(0); // 1,2,4,5,3,6,7
//arrBinaryTree.infixOrder(0);//4,2,5,1,6,3,7
arrBinaryTree.postOrder(0