0001 #include "BTNode.h" //引入B-树节点类 0002 0003 template <typename T> class BTree { //B-树模板类 0004 protected: 0005 int _size; //存放的关键码总数 0006 int _order; //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 order = 3 ) : _order ( order ), _size ( 0 ) //构造函数:默认为最低的3阶 0013 { _root = new BTNode<T>(); } 0014 ~BTree() { if ( _root ) release ( _root ); } //析构函数:释放所有节点 0015 int const order() { return _order; } //阶次 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