public class Node {
private int value;
private Node left;
private Node right;
//存储二叉树
public void store(int value){
if(value < this.value){//在该结点的左边
if(left==null){//该结点的左结点为空
left = new Node();left.value = value;//新建它的左结点
}else{//如果不为空则将左结点当作当前节点继续判断
left.store(value);
}
}else if(value > this.value){
if(right == null){
right = new Node();right.value = value;
}else{
right.store(value);
}
}
}
//查找二叉树
public boolean find(int value){
System.out.println("happen: "+this.value);//显示当前结点的值
if(this.value == value)return true;
else if(value < this.value){//搜索的值小于当前值
if(left==null)return false;
return left.find(value);
}else{
if(right==null)return false;
return right.find(value);
}
}
//前序历遍
public void preList(){
System.out.print(this.value+",");
if(left!=null)left.preList();
if(right!=null)right.preList();
}
//中序历遍
public void midList(){
if(left!=null)left.midList();
System.out.print(this.value+",");
if(right!=null)right.midList();
}
//后序历遍
public void afterList(){
if(left!=null)left.afterList();
if(right!=null)right.afterList();
System.out.print(this.value+",");
}