我对BinarySearchTree节点中的Key和Value之间的区别是什么感到困惑。 Key的重点是什么?难道你不能仅仅依靠价值来建立BST吗?以下是包含Key和Value的两个代码示例。它们是我从两个不同来源获得的两种不同代码。二叉搜索树 - Value和Key有什么区别?
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;
};
而第二段代码是;
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);
}
}
值只是连接到节点的东西。如果你喜欢,它就是节点的有效载荷。 – 2013-04-23 16:57:07
另外,关键类型有更多的接口需求,而值类型通常只需要可复制。 – StoryTeller 2013-04-23 16:58:39
那么,如果价值是节点价值,那么关键是什么?比方说,我正在制作一个数字列表,并且我希望节点值为10,我将如何制作密钥以及它的重点是什么? – user2130537 2013-04-23 16:58:55