直接上码了,不废话了。
- /**
- * 二叉树维护类
- * @author ldckl
- *
- */
- 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(){
- if(root != null){
- root.printNode();
- }
- }
- //节点类
- 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.data <= data){
- 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.println(this.data+" ");
- if(this.right != null){
- this.right.printNode();
- }
- }
- }
- }
下面是测试类:
- /**
- * 二叉树实现
- * @author ldckl
- *
- */
- 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(7);
- bt.add(13);
- bt.print();
- }
- }