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;
} }

最新文章

  1. Tomcat server.xml配置示例
  2. Android实战技巧:ViewStub的应用
  3. dubbo源码分析4-基于netty的dubbo协议的server
  4. POJ 3225 Help with Intervals --线段树区间操作
  5. 小白教你玩转php的闭包
  6. web app 自适应 弹性布局之rem
  7. UVA12653 Buses
  8. 解决fontawesome-webfont 被拦截的问题
  9. ubuntu杂记
  10. 如何在Latex上裁减图片
  11. [windows phone] 教你如何使地图动画缩放
  12. ES 2015/6 新特性汇总
  13. Linux 安装Anaconda 4.4.0
  14. Spring Cloud Eureka Server高可用注册服务中心的配置
  15. 如何让pl/sql developer记住密码,实现快速登录
  16. webpack 学习总结demo
  17. Redis系列一:reids的单机版安装
  18. server的响应数据
  19. 【Alpha版本发布】爬虫队长正在待命!
  20. mongodb在我这个C#下手眼中-01初识

热门文章

  1. IDEA 14.0 (默认模式) 快捷键
  2. FZU 1921——栀子花开——————【线段树单点更新】
  3. 解决The current branch is not configured for pull No value for key branch.master.merge found in config
  4. Checkbox与foreach循环
  5. div内容溢出
  6. python学习(四)--POST请求
  7. spring+springmvc+hibernate整合遇到的问题
  8. 我为什么不用Django而用Flask?
  9. mfc自动创建按钮消息处理并清除
  10. Kafka监控利器