gpt4 book ai didi

c++ - 二叉树为了toString函数C++

转载 作者:行者123 更新时间:2023-11-28 02:32:35 25 4
gpt4 key购买 nike

一段时间以来我一直在使用这个函数时遇到问题,部分原因是这个赋值对我必须如何实现 toString 方法有限制。我有创建结果字符串的原始方法,然后将其设置为等于应该按顺序返回二叉树字符串的方法。我提供了以下代码:

string Expression::toString() const{
string result = "";
result = inOrder(root, result);
return result;
}

string Expression::inOrder(Node* r, string x) const{
if(r->right==NULL && r->left == NULL){
if(r->num != NULL){
x += "(";
char c = r->num + '0';
string y(1, c);
x += y;
x += ")";
} else{
x += "(";
x += r->op;
x += ")";
}
return x;
}
x+=inOrder(r->left, x);
x+=r->op;
x+=inOrder(r->right, x);
}

由于常量函数不能操作任何外部变量,我的策略是在递归辅助函数中传递一个字符串参数,该函数将在传递节点时附加节点,然后最终返回该字符串。但是,我遇到了“访问冲突读取位置 0xcccccccc”错误。我知道这意味着我的递归有问题,尽管我似乎无法查明错误。提前致谢。

最佳答案

您没有考虑独生子女的情况。如果 r->leftNULLr->rightNULL,您将访问一个 NULL 指针。

关于c++ - 二叉树为了toString函数C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554515/

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