【发布时间】:2013-03-16 20:23:39
【问题描述】:
我有一个简单的问题让我感到困惑。我知道在二叉搜索树中拥有键/值对是什么概念,以及树在构建时的样子。
如果我不知道它的键是什么,我不确定如何在这样的 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);
}
任何帮助将不胜感激。
【问题讨论】:
-
您应该说明您正在使用哪种语言(计算机语言)进行编程。并且该语言作为您问题的标签。
-
很抱歉。我现在已经完成了编辑。
-
如果您正在搜索 values,那么您可以在实现/概念中交换 key 和 value 或您根本不需要存储密钥并只使用值。
标签: c++ algorithm data-structures binary-search-tree key-value