高级数据结构之BST(一)

本文深入探讨了二叉查找树(BST),包括树的定义、节点度、深度,以及满二叉树、完全二叉树的概念。特别讨论了哈夫曼树、AVL树和伸展树等平衡二叉树,以及B-树的特点。同时,介绍了BST的插入、删除和查询操作。
摘要由CSDN通过智能技术生成

1、树的节点包含一个数据元素,以及若干指向其子树的分支。节点拥有的子树的数量称为节点的度。节点的最大层次称为树的深度或高度。

2、二叉树是一种树形结构,其特点是每个节点至多有两棵子树,且子树有左右之分,次序不能随意颠倒。

3、满二叉树:一棵深度为k且有2^k - 1个节点的二叉树,称之为满二叉树。

4、完全二叉树:对一个深度为k,节点个数为n的二叉树,当且仅当每个节点都与深度为k的满二叉树中编号从1至n的节点一一对应时,称之为完全二叉树。

5、哈夫曼树:又称最优树,是一类带权路径长度最短的树。

6、二叉查找树(Binary Search Tree):对任一个节点,左子树的所有值都小于它,右子树的所有值都大于它。

7、AVL树:带有平衡条件的二叉查找树。

8、伸展树:任一个节点被访问后,它就要经过一系列的AVL树的旋转,将该节点放到根上。

9、B-树:另外一种常用的查找树。有几个特点,对于M阶的B树,首先,根节点如果不是叶子,则其子节点的数量在2-M之间。其次,除根之外,所有的非叶子节点的子节点数在M/2 - M之间。最后,所有的叶子节点有相同的深度。

BST树

节点的插入、删除、查询 

/*
定义一颗BST树
 */
class BinNode<T extends Comparable<T>>{
    public T data;//数据域
    public BinNode<T> left;//左孩子
    public BinNode<T> right;//右孩子

    public BinNode(T data, BinNode<T> left, BinNode<T> right) {
        this.data = data;
        this.left = left;
        this.right = right;
    }

    public T getData() {
        return data;
    }

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

    public BinNode<T> getLeft() {
        return left;
    }

    public void se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值