题目:给你一个数组{1,2,3,4,5,6,7},要求以二叉树前序遍历的方式进行遍历,前序遍历的结果应该为1,2,3,4,5,6,7。
思路分析:
package com.shujujiegou;
import sun.plugin2.util.ParameterNames;
public class ran {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6,7};
//创建一个顺序存储二叉树对象
arrerchashu arrerchashu = new arrerchashu(arr);
arrerchashu.qianxu(); //
}
}
//编写一个类二叉树 实现顺序存储二叉树
class arrerchashu{
private int[] shuzu; //存储数据节点的数组
public arrerchashu(int[] shuzu) {
this.shuzu = shuzu;
}
public void qianxu(){
this.qianxu(0);
}
//编写一个方法完成顺序存储二叉树的前序遍历 index表示数组下标
public void qianxu(int index){
//如果数组为空 或者shuzu。length为0
if(shuzu==null || shuzu.length==0){
System.out.println("数组为空,不可按照二叉树的前序遍历");
}
//输出当前的数组元素
System.out.println(shuzu[index]);
//向左递归遍历
if( (index*2+1)<shuzu.length ){
qianxu(2*index+1);
}
//向右递归
if((index*2+2)<shuzu.length){
qianxu(2*index+2);
}
}
}
代码运行效果如下: