我有一个简单的问题,我很困惑。我知道在二叉搜索树中具有键/值对的概念是什么,以及树在构建时的样子。
如果我不知道它的键是什么,我不确定如何在这样的 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);
}
任何帮助,将不胜感激。