1.构造二叉树类,创建添加和输出方法
/**
* 数据结构之二叉树
*
*
*/
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(this.data+"->");
if(this.right!=null){
this.right.printNode();
}
}
}
}
2.测试
public class BinaryTreeDemo {
public static void main(String[] args) {
BinaryTree bt=new BinaryTree();
bt.add(8);
bt.add(3);
bt.add(10);
bt.add(1);
bt.add(6);
bt.add(14);
bt.add(4);
bt.add(7);
bt.add(13);
bt.print();
}
}