BinarySearchTree ノードの Key と Value の違いについて混乱しています。キーのポイントは何ですか? 値のみに基づいて BST を作成することはできませんか? Key と Value を含む 2 つのコード サンプルを次に示します。これらは、2 つの異なるソースから入手した 2 つの異なるコードです。
template<typename Key, typename Value>
class Node
{
private:
public:
Node<Key, Value>(Key key, Value value)
{
this->key = key;
this->value = value;
N = 1;
left = NULL;
right = NULL;
};
Node* left;
Node* right;
Key key;
Value value;
int N;
};
2 番目のコードは次のとおりです。
void insert(int value)
{
if(root == NULL)
root = new Node(value);
else
insertHelper(root, value);
}
void insertHelper(Node* node, int value)
{
if(value < node->key)
{
if(node->leftChild == NULL)
node->leftChild = new Node(value);
else
insertHelper(node->leftChild, value);
}
else
{
if(node->rightChild == NULL)
node->rightChild = new Node(value);
else
insertHelper(node->rightChild, value);
}
}