public class BinaryTree {
Node root;
public void insert(int o) {
Node n=new Node();
n.setO(o);
if(root==null) {
n.setLeftChild(null);
n.setRightChild(null);
root=n;
}
insert(root,n);
}
public void insert(Node parent,Node n) {
if(parent.getO()==n.getO()) {
return;
}
if(parent.getO()>n.getO()) {
if(parent.getLeftChild()==null) {
parent.setLeftChild(n);
}
insert(parent.getLeftChild(),n);
return;
}
if(parent.getO()<n.getO()) {
if(parent.getRightChild()==null) {
parent.setRightChild(n);
}
insert(parent.getRightChild(),n);
return;
}
}
public boolean isEmpty() {
if(root==null) {
return true;
}
return false;
}
public void XianSearch() {
if(isEmpty()) {
System.out.println("树为空,无法遍历");
return ;
}
XianSearch(root);
}
public void XianSearch(Node parent) {
if(parent!=null) {
System.out.println(parent.getO());
XianSearch(parent.getLeftChild());
XianSearch(parent.getRightChild());
}
}
public void zhongSearch() {
if(isEmpty()) {
System.out.println("树为空无法宾利");
return;
}
zhongSearch(root);
}
public void zhongSearch(Node parent) {
if(parent!=null) {
zhongSearch(parent.getLeftChild());
System.out.println(parent.getO());
zhongSearch(parent.getRightChild());
}
}
public void houSearch() {
if(isEmpty()) {
System.out.println("树为空无法i案例");
return;
}
houSearch(root);
}
public void houSearch(Node parent) {
if(parent!=null) {
houSearch(parent.getLeftChild());
houSearch(parent.getRightChild());
System.out.println(parent.getO());
}
}
public void clear() {
root=null;
}
public int getHeight() {
if(isEmpty()) {
return 0;
}
return getHeight(root);
}
public int getHeight(Node parent) {
if(parent!=null) {
int l=getHeight(parent.getLeftChild());
int r=getHeight(parent.getRightChild());
return l>r?l+1:r+1;
}
return 0;
}
public int getNodes() {
if(isEmpty()) {
System.out.println("树为空");
}
return getNodes(root);
}
public int getNodes(Node parent) {
if(parent!=null) {
int left=getNodes(parent.getLeftChild());
int right=getNodes(parent.getRightChild());
return left+right+1;
}
return 0;
}
}