package io.github.vxzh;
/**
* Created by vxzh on 26/02/2017.
*/
public class BinaryTree {
private TreeNode root;
public boolean isEmpty() {
return root == null;
}
//节点个数
public int size() {
return size(root);
}
private int size(TreeNode subTree) {
if (subTree == null) {
return 0;
} else {
return 1 + size(subTree.leftChild)
+ size(subTree.rightChild);
}
}
public void insert(int o) {
TreeNode newNode = new TreeNode(o, null, null);
if (root == null)
root = newNode;
else {
TreeNode current = root;
while (true) {
if (o < current.data) {
current = current.leftChild;
if (current == null) {
current.leftChild = newNode;
return;
}
} else {
current = current.rightChild;
if (current == null) {
current.rightChild = newNode;
return;
}
}
}
}
}
private class TreeNode {
private int data;
private TreeNode leftChild;
private TreeNode rightChild;
public TreeNode() {
}
public TreeNode(int o, TreeNode l, TreeNode r) {
this.data = o;
this.leftChild = l;
this.rightChild = r;
}
}
}