0001 template <typename T> struct BTree { 0002 const Rank _a, _b; Rank _N; BTNP<T> _root; //分支数的上、下限;关键码总数;根节点 0003 BTree(Rank m = 3) : _a((m+1)/2), _b(m), _N(0), _root(new BTNode<T>(m)) 0004 { _root->way.insert(nullptr); } //初始空树:根节点无关键码,但有一棵空分支 0005 ~BTree() { clean(_root); } //释放所有节点 0006 BTNP<T> search(const T&); BTNP<T> _x; Rank _k; //无论成功与否,查找总是终止于_x->key[_k] 0007 bool insert(const T&); void solveOverflow(); //插入及上溢修复 0008 bool remove(const T&); void solveUnderflow(); //删除及下溢修复 0009 }; //BTree