0001 #include "BTNode.h" //引入B-树节点类 0002 0003 template <typename T> class BTree { //B-树模板类 0004 protected: 0005 Rank _size; //存放的关键码总数 0006 Rank _m; // B-树的阶次,至少为3——创建时指定,一般不能修改 0007 BTNodePosi<T> _root; //根节点 0008 BTNodePosi<T> _hot; // BTree::search()最后访问的非空(除非树空)的节点位置 0009 void solveOverflow( BTNodePosi<T> ); //因插入而上溢之后的分裂处理 0010 void solveUnderflow( BTNodePosi<T> ); //因删除而下溢之后的合并处理 0011 public: 0012 BTree( int m = 3 ) : _m( m ), _size( 0 ) //构造函数:默认为最低的3阶 0013 { _root = new BTNode<T>(); } 0014 ~BTree() { if ( _root ) release( _root ); } //析构函数:释放所有节点 0015 int const order() { return _m; } //阶次 0016 int const size() { return _size; } //规模 0017 BTNodePosi<T> & root() { return _root; } //树根 0018 bool empty() const { return !_root; } //判空 0019 BTNodePosi<T> search ( const T& e ); //查找 0020 bool insert ( const T& e ); //插入 0021 bool remove ( const T& e ); //删除 0022 }; //BTree