顺序存储二叉树
基本说明
从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组,
数组arr = 1,2,3,4,5,6,7
顺序存储二叉树为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-prIdHKxU-1611749301899)(C:\Users\王庆华\AppData\Roaming\Typora\typora-user-images\image-20210127135432644.png)]
特点
1.顺序存储二叉树通常只考虑完全二叉树
2.第n个元素的左子节点为2 * n+1 2的左子节点为 2*1+1 = arr[3]
3.第n个元素的右子节点为2 * n+2 2的右子节点为2*1+2 = arr[4]
4.第n个元素的父节点为(n-1)/ 2 2的父节点为 (1-1)/2 = arr[0]
代码实现
我们还是用上面那个1,2,3,4,5,6,7数组,以二叉树的前序遍历方式遍历,则前序遍历的结果应当是1,2,4,5,3,6,7
package 树;
//2021年1月27日15:13:42
//作者 王
//顺序存储二叉树
public class ArrayBinnaryTreeDemo {
public static void main(String[] args) {
int[] arr = {
1,2,3,4,5,6,7};
ArrayBinnaryTree arrayBinnaryTree = new ArrayBinnaryTree(arr);
arrayBinnaryTree.preOrder();
// arrayBinnaryTr