c++ - 二叉搜索树 - C++ 中的唯一值
问题描述
该项目是将单词添加到 BST 中的每个节点。我需要计算我的 BST 中唯一或不同值的数量。
这是我添加单词的代码。我需要帮助编写 int distinctWords() const;。
void WordTree:: addPrivate(WordNode *n, ItemType v)
{
if (root == NULL)
root = new WordNode(v);
else if (v == n->m_data)
{
n->m_count++;
}
else if (v < n->m_data)
{
if (n->m_left != NULL)
{
addPrivate(n->m_left, v);
}
else
{
n->m_left = new WordNode(v);
}
}
else if (v > n->m_data)
{
if (n->m_right != NULL)
{
addPrivate(n->m_right, v);
}
else
{
n->m_right = new WordNode(v);
}
}
}
解决方案
使用那棵树,这与节点数相同。
递归确定节点数:
- 如果树为空,则它没有节点。
- 如果它不为空,则它比子树中节点数的总和多一个节点。
在 C++ 中,
int distinctWords(const WordNode* node)
{
return node == nullptr
? 0
: 1 + distinctWords(node->m_left) + distinctWords(node->m_right);
}
推荐阅读
- postgresql - 在 SQL (PGadmin) 中更改列类型不起作用
- c - (Game Boy Advance) 程序从 0x00000000 而不是 0x08000000 开始。如何告诉 gcc 编译到特定地址?
- flutter - Android Studio - 如何在 Flutter 项目中启用 Kotlin 文档?
- javascript - 用数组元素填充空白
- javascript - 有什么方法可以在不重新启动动画的情况下通过 element.animate 更新动画集的持续时间?
- python - 安装 passlib 的问题
- python - 在 Django 项目中,我在哪里可以编写用于条带支付的服务器代码?
- r - 在 Shiny 中显示最高数字的值
- zooming - Camera2 API 缩放相机预览
- reactjs - 如果想在我的整个 React 应用程序中访问变量,我应该在哪里设置变量?