【发布时间】:2017-05-07 12:15:46
【问题描述】:
对于下面的代码,我试图将打印的节点存储在变量s 内的完整表达式中的字符串中。
string ExprTree::prefixOrder(const ExprTree & t){
string s;
if (t.root != NULL){
s.append(t.root->toString());
prefixOrder(t.root->getLeftChild());
prefixOrder(t.root->getRightChild());
}
std::cout << s << std::endl;
return s;
}
对于算术表达式,即5 + 5
我得到了输出:
5
5
+
但是,我想将它存储在字符串 s 中,像 "+ 5 5" 这样的完整字符串,但附加将输出存储在不同的元素中而不是单个字符串中,所以我想知道如何实现这个结果?我尝试使用stringstream 并遇到了同样的问题。
【问题讨论】:
-
当前丢弃的递归返回结果将有助于实现您似乎正在寻找的东西。尝试使用它们。我很好奇你是如何从 this 代码中获得任何“输出”的。
-
我编辑了 OP。问题是我试图将输出的字符串存储在单个字符串变量中,并像这样“+ 5 5”在一行中输出。我不太确定递归结果将如何帮助我实现这一目标。
-
std::ostringstream是这里的正确答案。 “遇到同样的问题”不是有用的问题描述。 -
哦,好的,谢谢我让它工作了。我猜我还没有很好地概念化递归。
标签: c++ string data-structures binary-tree