package com.cjonline.foundation.evisa;
public class TestTree {
private int data=-1;
private TestTree lchild=null;
private TestTree rchild=null;
private int pos=-1; //记录当前已经使用数组的位置
/*
* 构造二叉树
*/
public TestTree createTree(TestTree tree,int[] data){
if(data == null || data.length<1)
return null;
tree = new TestTree();
pos++;
if(pos<data.length && data[pos]!=-1){
tree.data=data[pos];
tree.setLchild(createTree(lchild,data));//设置左孩子
tree.setRchild(createTree(rchild,data));//设置右孩子
}
return tree;
}
/*
* 前序遍历
*/
public void print(TestTree t){
if(t!=null && t.getData()!=-1){
System.out.print(" "+t.getData());
print(t.getLchild());
print(t.getRchild());
}
}
@Override
public String toString() {
return "TestTree [data=" + data + "]";
}
public static void main(String[] args) {
TestTree tree = new TestTree();
int[] data = {1,2,-1,-1,3,-1,-1};
tree=tree.createTree(tree, data);
System.out.println(tree);
System.out.println(tree.getLchild());
System.out.println(tree.getRchild());
tree.print(tree);
}
/**
* 获取data
* @return
*/
public int getData() {
return data;
}
/**
* 设置 data
* @param data
*/
public void setData(int data) {
this.data = data;
}
/**
* 获取lchild
* @return
*/
public TestTree getLchild() {
return lchild;
}
/**
* 设置 lchild
* @param lchild
*/
public void setLchild(TestTree lchild) {
this.lchild = lchild;
}
/**
* 获取rchild
* @return
*/
public TestTree getRchild() {
return rchild;
}
/**
* 设置 rchild
* @param rchild
*/
public void setRchild(TestTree rchild) {
this.rchild = rchild;
}
/**
* 获取pos
* @return
*/
public int getPos() {
return pos;
}
/**
* 设置 pos
* @param pos
*/
public void setPos(int pos) {
this.pos = pos;
}
}