package testProject;
public class BinaryTreeDemo {
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
bt.add(10);
bt.add(1);
bt.add(13);
bt.add(4);
bt.add(5);
bt.add(32);
bt.add(11);
bt.add(7);
bt.add(17);
bt.print();
}
}
package testProject;
public class BinaryTree {
private Node root;
public void add(int data) {
if(root==null) {
root = new Node(data);
}else {
root.addNode(data);
}
}
public void print() {
root.printNode();
}
private class Node{
private int data;
private Node left;
private Node right;
public Node(int data) {
this.data = data;
}
public void addNode(int data) {
if(this.data>data) {
if(this.left==null) {
this.left = new Node(data);
}else {
this.left.addNode(data); //递归调用添加方法
}
}else{
if(this.right == null) {
this.right = new Node(data);
}else {
this.right.addNode(data); //递归调用添加方法
}
}
}
public void printNode() {
if(this.left!=null) {
this.left.printNode();
}
System.out.print(data+" "); //由于每一个节点都可看做是根节点,此处可直接输出自己
if(this.right!=null) {
this.right.printNode();
}
}
}
}
网友评论