二叉树顺序存储是二叉树的一种存储方式。二叉树的顺序存储就是用一组连续的存储单元存放二又树中的结点元素,一般按照二叉树结点自上向下、自左向右的顺序存储。使用此存储方式,结点的前驱和后继不一定是它们在逻辑上的邻接关系,非常适用于满二又树和完全二又树。
其中n表示二叉树中的第几个元素(从0开始)如下图所示
/**
* 用数组的方式存储二叉树
*/
public class ArrayBinaryTree {
/*存储结点的数组*/
private char[] arr;
public ArrayBinaryTree(char[] arr) {
this.arr = arr;
}
/**
* 重载preDisplay
*/
public void preDisplay(){
this.preDisplay(0);
}
/**
* 顺序存储二叉树的前序遍历
* @param n 数组下标
*/
public void preDisplay(int n){
if (arr == null || arr.length == 0) {
System.out.println("数组为空,无法遍历");
}
/*输出当前结点元素*/
System.out.print(arr[n]+" ");
/*向左递归遍历*/
if ((n * 2 + 1) < arr.length){
preDisplay(n * 2 + 1);
}
/*向右递归遍历*/
if ((n * 2 + 2) < arr.length){
preDisplay(n * 2 + 2);
}
}
}
测试类
public class ArrayBinaryTreeTest {
public static void main(String[] args) {
/*初始化数组*/
char[] arr = {'A','B','C','D','E','F','G'};
ArrayBinaryTree tree = new ArrayBinaryTree(arr);
System.out.println("前序遍历:");
tree.preDisplay();
}
}
前序遍历:
A B D E C F G
Process finished with exit code 0
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/m0_60117382/article/details/122789705
内容来源于网络,如有侵权,请联系作者删除!