BinarySearchTree(BST)

二叉搜索树区别于普通的二叉树:

任意节点都不不小于其左子树中的节点,不大于其右子树的节点。

性质:

顺序性:对局部特征的刻画
任意节点都不不小于其左子树中的节点,不大于其右子树的节点。

单调性:对全局特征的刻画
BST的中序遍历的结果,必然单调非降(这是个充要条件)
这里写图片描述

BST的实现:

//接口
#include "BinTree/BinTree.h" //引入BinTree
template <typename T> class BST : public BinTree<T> { //由BinTree派生BST模板类
protected:
    BinNodePosi(T) _hot; //“命中”节点的父亲
    BinNodePosi(T) connect34 ( //按照“3 + 4”结构,联接3个节点及四棵子树
    BinNodePosi(T), BinNodePosi(T), BinNodePosi(T),
    BinNodePosi(T), BinNodePosi(T), BinNodePosi(T), BinNodePosi(T) );
    BinNodePosi(T) rotateAt ( BinNodePosi(T) x ); //对x及其父亲、祖父做统一旋转调整
public: //基本接口:以virtual修饰,强制要求所有派生类(BST变种)根据各自的规则对其重写
    virtual BinNodePosi(T) & search ( const T& e ); //查找
    virtual BinNodePosi(T) insert ( const T& e ); //插入
    virtual bool remove ( const T& e ); //删除
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值