【发布时间】:2016-09-15 18:45:35
【问题描述】:
我想通过使用字符串流和递归来打印我的二叉搜索树中所有节点的内容。问题是当我使用这段代码时,只显示根目录的内容。我知道原因是每次我递归调用函数 InOrder(BSTNode* bst_node) 时,都会再次创建我的 stringstream 变量。我可以对我的代码做些什么来解决这个问题,同时仍然使用字符串流进行输出?
这是我的代码:
string BSTree::InOrder(BSTNode* bst_node) {
stringstream ss;
if (root_ == NULL) {
return "";
} else {
if (bst_node->GetLeftChild() != NULL) {
InOrder(bst_node->GetLeftChild());
}
ss << bst_node->GetContents() << " ";
if (bst_node->GetRightChild() != NULL) {
InOrder(bst_node->GetRightChild());
}
}
return ss.str();
}
【问题讨论】:
标签: c++ recursion binary-search-tree inorder