java二叉树

二叉树之java,前中后遍历,对于“大的子节点”采用了平行方式,运行即可知道
更多详细见“二叉树遍历,统计”

public class Node {
    public int value;

    public Node left;

    public Node right;

    public void store(int value) {
        if (value < this.value) {
            if (left == null) {
                left = new Node();
                left.value = value;
            } else {
                left.store(value);
            }
        } else if (value > this.value) {
            if (right == null) {
                right = new Node();
                right.value = value;
            } else {
                right.store(value);
            }
        }
    }

    public boolean find(int value) {
        System.out.println("happen " + this.value);
        if (value == this.value) {
            return true;
        } else if (value > this.value) {
            if (right == null)
                return false;
            return right.find(value);
        } else {
            if (left == null)
                return false;
            return left.find(value);
        }

    }

    public void preList() {
        System.out.print(this.value + ",");
        if (left != null)
            left.preList();
        if (right != null)
            right.preList();
    }

    public void middleList() {
        if (left != null)
            left.preList();
        System.out.print(this.value + ",");
        if (right != null)
            right.preList();
    }

    public void afterList() {
        if (left != null)
            left.preList();
        if (right != null)
            right.preList();
        System.out.print(this.value + ",");
    }

    public static void main(String[] args) {
        int[] data = new int[20];
        for (int i = 0; i < data.length; i++) {
            data[i] = (int) (Math.random() * 100) + 1;
            System.out.print(data[i] + ",");
        }
        System.out.println();
        Node root = new Node();
        root.value = data[0];
        for (int i = 1; i < data.length; i++) {
            root.store(data[i]);
        }
        root.find(data[19]);
        root.preList();
        System.out.println();
        root.middleList();
        System.out.println();
        root.afterList();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值