import java.util.ArrayList;
import java.util.List;
public class Tree {
private Tree left;
private String data;
private Tree right;
/**
* 默认初始化对象
*/
public Tree(){
this.left = null;
this.data = null;
this.right = null;
}
/**
* 根据传入的参数 初始化对象
* @param tree
*/
public Tree(String data){
this.left = null;
this.right = null;
this.data = data;
}
public Tree getLeft() {
return left;
}
public void setLeft(Tree left) {
this.left = left;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public Tree getRight() {
return right;
}
public void setRight(Tree right) {
this.right = right;
}
public static List<Tree> getList() {
return list;
}
public static void setList(List<Tree> list) {
Tree.list = list;
}
private static List<Tree> list = new ArrayList<Tree>();
/**
* 增加左子树
*/
public boolean addLeftTree(Tree leftTree){
if(null != leftTree){
this.setLeft(leftTree);
return true;
}else{
return false;
}
}
/**
* 增加右子树
*/
public boolean addRightTree(Tree rightTree){
if(null != rightTree){
this.setRight(rightTree);
return true;
}else{
return false;
}
}
public String showData(Tree tree){
return tree.toString();
}
public String toString() {
StringBuffer sb = new StringBuffer();
if(null != this.data){
sb.append(this.data);
}
return sb.toString();
}
}
package com.my.tree;
import java.util.Random;
public class TestTree {
public static void main(String [] args){
Tree root = new Tree("root");
Tree rootCopy = root;
/**
* 初始化二叉树
*/
Random randomNum = new Random();
int flag = randomNum.nextInt(5);
System.out.println(flag+"_"+root.getData());
for(int i =0 ;i < 10;i++){
if(0 == flag){
flag++;
}
if(i/flag == 0){
Tree leftTree = new Tree(i+"_left");
System.out.println(leftTree.getData());
root.addLeftTree(leftTree);
root = leftTree;
}else{
Tree rightTree = new Tree(i+"_right");
System.out.println(rightTree.getData());
root.addRightTree(rightTree);
root = rightTree;
}
}
System.out.println("-------------------");
/**
* 遍历二叉树
*/
while(true){
if(null != rootCopy){
if(null != rootCopy.getLeft()){
System.out.println(rootCopy.getLeft());
rootCopy = rootCopy.getLeft();
}
if(null != rootCopy.getRight()){
System.out.println(rootCopy.getRight());
rootCopy = rootCopy.getRight();
}
if(null == rootCopy.getLeft() && null == rootCopy.getRight()){
break;
}
}
}
}
}