gpt4 book ai didi

c++ - 试图读入一个字符串以放入二叉树

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:00 26 4
gpt4 key购买 nike

我正在尝试获取一个字符串,然后将其处理成二叉树。唯一的问题是,我很难真正阅读字符串。我知道在 C++ 中每个单独的字符都是一个字符,而不是一个字符串,但我不知道如何通过字符串递归来获取每个字符(我希望这是有道理的)。我试图将第一个字符作为根放入我的构造函数中,然后进入我的构建树函数,然后继续向下填充它。有人有什么想法吗?


class PrefixTree
{
private:
struct TreeNode
{
char character;
TreeNode * left;
TreeNode * right;
};
TreeNode* root = new TreeNode;
public:

PrefixTree(string value)
{
if (value == '*')
{
root->character = value;

}
buildTree(root, value);
}
TreeNode* buildTree(TreeNode* node, string value)
{
TreeNode* currentNode = new TreeNode;
currentNode = node;

if (currentNode->character == '*' && currentNode->left == NULL)
{
currentNode->left = buildTree(currentNode->right,value);
return currentNode;
}
else if (currentNode->character == '*' && currentNode->right == NULL)
{
currentNode->right = buildTree(currentNode->right,value);
return currentNode;
}
else
{
return currentNode;
}
}

以及我如何在 main 中调用构造函数:

  PrefixTree n("*ab");

最佳答案

您可以在字符串上使用 [] 运算符来获取单个字符。

例如:

string a = "hello";
cout << a[0];

将打印“h”,a 的第一个字符。

我建议,在您的递归函数中,使用 [] 运算符获取一个字符,然后使用 .substr() 函数对字符串的一部分进行递归。

关于c++ - 试图读入一个字符串以放入二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841450/

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