什么是KV呢?即节点中存有key值和value值,key作为键,用来保证树的结构,value值与key值对应(在下一篇avl树和红黑树会详细展开~)
总体结构:
template <class K,class V>
struct BSTNode {
BSTNode(const K& key = K(), const V& value = V(), BSTNode* left = nullptr,BSTNode* right = nullptr)
:_key(key),
_value(value),
_left(left),
_right(right)
{}
BSTNode* _left;
BSTNode* _right;
K _key;
V _value;
};
template <class K,class V>
class BSTree {
typedef BSTNode<K,V> Node;
public:
//与上面的代码大同小异,只是多了一个参数而已
private:
Node* _root = nullptr;
};