数据结构与算法——Tree (Java泛型类)

一 、Tree接口

public interface NTreeNode<T> {
    public T getData();
    public void setData(T data);

    public NTreeNode<T> getLeft();
    public void setLeft(NTreeNode<T> left);
    public NTreeNode<T> getRight();
    public void setRight(NTreeNode<T> right);
}

 

二 、二叉搜索树的节点(实现自NTreeNode)

public class BinarySearchTreeNode<T extends Comparable<T>> implements NTreeNode<T>{
    private T data;
    private BinarySearchTreeNode<T> left;
    private BinarySearchTreeNode<T> right;

    public T getData(){
        return data;
    }
    public void setData(T data){
        this.data = data;
    }

    public BinarySearchTreeNode<T> getLeft(){
        return left;
    }
    public void setLeft(NTreeNode<T> left){
        this.left = (BinarySearchTreeNode<T>)left;
    }
    public BinarySearchTreeNode<T> getRight(){
        return right;
    }
    public void setRight(NTreeNode<T> right){
        this.right = (BinarySearchTreeNode<T>)right;
    }

}

 

三、 平衡二叉搜索树的节点

public class AVLTreeNode <T extends Comparable<T>> implements NTreeNode<T>{

    private T data;
    private int height;
    private AVLTreeNode<T> left;
    private AVLTreeNode<T> right;

    public T getData(){
        return data;
    }
    public void setData(T data){
        this.data = data;
    }
    public int getHeight(){
        return height;
    }
    public void setHeight(int height){
        this.height = height;
    }
    public NTreeNode<T> getLeft(){
        return left;
    }
    public void setLeft(NTreeNode<T> left){
        this.left = (AVLTreeNode<T> )left;
    }
    public NTreeNode<T> getRight(){
        return right;
    }
    public void setRight(NTreeNode<T> right){
        this.right = (AVLTreeNode<T> )right;
    }

}

 

 

四、更多

平衡二叉搜索树实现

2 二叉搜索树实现

posted @ 2017-11-15 19:16  倪明  阅读(314)  评论(0)    收藏  举报