gpt4 book ai didi

c++ - 在二叉搜索树中查找最常用的词

转载 作者:行者123 更新时间:2023-12-02 09:59:24 25 4
gpt4 key购买 nike

我正在编写一个函数来输出二叉搜索树中最常见的单词,但它按字母顺序输出 bst 顶部的单词,而不是最常见的单词。
例如:
输入:abc abc abc abc xyz xyz xyz xyz xyz xyz
输出:abc
我真的不知道问题是什么,任何帮助将不胜感激。

void WordAnalyzer::findCommon(TreeNode* root) {
if (root != NULL) {
findCommon(root->left);
if (prev != NULL) {
if (root->data == prev->data) {
currCount++;
}
else {
currCount = 1;
}
}

if (currCount > maxCount) {
maxCount = currCount;
maxWord = root->data;
}
prev = root;
findCommon(root->right);
}
}

string WordAnalyzer::getMostCommonWord() {
findCommon(root);
return maxWord;
}

最佳答案

从代码中不清楚如何以及在哪里currCount已初始化,但如果在此代码运行之前未显式初始化,则会出现未定义的行为。
查看 BST 中的第一个(最左侧)元素时,您设置了 prev = root ,但你没有设置 currCount ,那么当你访问下一个元素时,你增加 currCount by 1,但你从来没有给它一个初始值,它基本上可以包含任何“垃圾”值。

关于c++ - 在二叉搜索树中查找最常用的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63428764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com