递归调用的二叉树的创建及中序遍历:
public class BinaryTree {
private Node root;
//这里只要维护BinaryTree 的头结点就行
public void addNode(int data){
if(null == root){
root = new Node(data);
}else{
root.addNode(data);
}
}
public void echoNode(){
root.echoNode();
}
class Node{
private int data; //数据
private Node left; //左子树
private Node right; //右子树
private Node temp;
public Node(int data){
this.data = data;
}
//只有对象自己清楚怎么操作自己
private void addNode(int data){
if(data < this.data){
if(null == this.left){
this.left = new Node(data);
}else{
temp = this.left;
temp.addNode(data);
}
}else{
if(null == this.right){
this.right = new Node(data);
}else{
temp = this.right;
temp.addNode(data);
}
}
}
//中序遍历
private void echoNode(){
if(null != this.left){
this.left.echoNode();
}
System.out.print(this.data + ",");
if(null != this.right){
this.right.echoNode();
}
}
}
}