我有一个简单的问题,我很困惑。我知道在二叉搜索树中有一个键/值对的概念,以及它在构建时的外观。二叉搜索树键/值对 - 我知道的价值,但不是关键C++
我不确定如何在这样的BST中搜索一个值,如果我没有跟踪它的关键是什么?
例如:
让说我有一个二叉搜索树全整数(如值),也唯一整数(如钥匙)。假设我想要计算一个特定的整数(比如说:200)在这个BST中出现的次数。所以我知道,200是“价值”而不是“钥匙”。 因此我根本不知道钥匙。
如何现在搜索整个BST中的所有“200”? 它现在成为一个简单的BST,我根本不需要钥匙?但是,再次,树使用“键”而不是值排列在左边的孩子和右边的孩子。
我也可以给你我是如何初始化BST一个代码示例:
void insertNode(TreeNode *&p, int key, int value)
{
if (p == NULL) {
p = new TreeNode;
p->key = key;
p->value = value;
p->left = NULL;
p->right = NULL;
return;
}
if (key < p->key)
insertNode(p->left, key, value);
else
insertNode(p->right, key, value);
}
任何帮助,将不胜感激。
你应该说明你正在编程什么语言(计算机语言),还有语言作为你的问题的标签。 – Annabel 2013-03-16 20:28:44
对不起。我已经完成了编辑。 – Faizan 2013-03-16 20:32:15
如果您正在搜索* values *,则可以在您的实现/概念中交换* key *和* value *,或者根本不需要存储密钥并仅使用该值。 – Cat 2016-06-06 08:29:35