二叉树的实现以及高度

下面直接贴出代码:


题:二叉排序树_求二叉树的高度
如果定义一棵二叉树的高度就是从根到叶子的最长距离。试编码求二叉树的高度。

其实,二叉树的高度就是它的左子树和右子树中高度最大值 + 1

另外考虑: 当待排序的数据本来就是有序的情况,会发生什么?

请参考《数据结构》教材解决这个问题。

源码BiTree.java


package BiTree;

public class BiTree {

    private int data;
    private BiTree left;
    private BiTree right;
    
    public BiTree(int x) {
        data = x;
    }
    public void add(int x) {
        if (x<data) {
            if (left!=null) {
                left.add(x);
            }
            else {
                left = new BiTree(x);
            }
        }
        else {
            if (right!=null) {
                right.add(x);
            }
            else {
                right = new BiTree(x);
            }
        }
    }
    public void trvl() {
        if (left!=null) {
            left.trvl();
        }
        System.out.println(data);
        if (right!=null) {
            right.trvl();
        }
    }
    public int hite() {
        int l = (left!=null)? left.hite()+1: 0;
        int r = (right!=null)? right.hite()+1: 0;
        return (l>r)? l: r;  
    }
}

import BiTree.BiTree;

public class Tgame {
    public static void main(String[] args) {
        BiTree t = new BiTree(12);
        t.add(9);
        t.add(5);
        t.add(8);
        t.add(11);
        t.add(20);
//      t.add(7);
        t.trvl();
        System.out.println("\nH "+t.hite());
    }
}

参考——2cto

发表评论

电子邮件地址不会被公开。 必填项已用*标注