我正在尝试递归地创建一个表达式树。每当这个函数接收到其他表达式变量时,它运行得非常好。但是每当它接收到一个整数(或者在这种情况下是一个将它带到 else 语句的字符串)时,它就会使我的程序崩溃。
void buildExpressionTree (istream &ins, BinaryNode* p)
{
string buffer;
//read in from file
while ((ins.peek()!='\n') && (ins >> buffer))
{
if(p == NULL && buffer == "*","/","+","-")
{
p = new BinaryNode(buffer, NULL, NULL);
buildExpressionTree(ins,p->left);
buildExpressionTree(ins,p->right);
}
else
{
p = new BinaryNode(buffer, NULL, NULL);
}
}
}
p 是树的根(传递给此函数时为 null), ins 是输入文件流对象。