说明生活中遇到的二叉树,用java实现二叉树

二叉树浏览:680收藏:0
答案:
这是组合设计模式。
我有很多个(假设10万个)数据要保存起来,以后还需要从保存的这些数据中检索是否存在某个数据,(我想说出二叉树的好处,该怎么说呢?那就是说别人的缺点),假如存在数组中,那么,碰巧要找的数字位于99999那个地方,那查找的速度将很慢,因为要从第1个依次往后取,取出来后进行比较。平衡二叉树(构建平衡二叉树需要先排序,我们这里就不作考虑了)可以很好地解决这个问题,但二叉树的遍历(前序,中序,后序)效率要比数组低很多,原理如下图:
代码如下:
public class AnswerB04 {

    public static void main(String[] args) {
        Node root = makeupTree();
        traverse(root);
    }

    private static void traverse(Node node) {
        if (node == null) {
            return;
        }
        traverse(node.left);
        System.out.println(node.value);
        traverse(node.right);
    }

    private static Node makeupTree() {
        Node root = new Node(0);
        Node node1 = new Node(1);
        Node node2 = new Node(2);
        Node node11 = new Node(11);
        Node node12 = new Node(12);
        Node node21 = new Node(21);
        Node node22 = new Node(22);

        root.left = node1;
        root.right = node2;

        node1.left = node11;
        node1.right = node12;

        node2.left = node21;
        node2.right = node22;
        return root;
    }

    public static class Node {
        public Node left;
        public Node right;
        public int value;

        public Node(int value) {
            this.value = value;
        }
    }
}