【发布时间】:2019-12-18 20:15:16
【问题描述】:
struct node
{
char data;
node *left, *right;
};
constructTree(string expression)
{
for(i = 0; i < expression.length(); i++)
{
if(!(isOperator(expression[i]))
{
temp = createNode(expression[i]);
push(temp);
}
else
{
temp = createNode(expression[i]);
node *temp1, *temp2;
temp1 = pop();
temp2 = pop();
temp->left = temp1;
temp->right = temp2;
}
}
}
int main()
{
string expression = "(a+b)-c*(d/e)";
constructTree(expression);
}
我想从中缀表达式构造表达式树,我将把它作为来自用户的字符串。我尝试了很多,现在我感到厌倦了。请一些人帮助我从中缀表达式制作这个表达式树!
【问题讨论】:
-
请给minimal reproducible example。无论如何,如果您在 Internet 上进行搜索,您会找到 softwareengineering.stackexchange.com/questions/290529/…
-
如果您尝试解决问题并在必要时提出有关尝试的问题,您将获得更好的 Stack Overflow 体验。
-
编写表达式解析器是一项非常重要的工作,并且有很多方法可以做到这一点。但你不是第一个问的人。这些答案有帮助吗? stackoverflow.com/questions/11703082/…
-
出于好奇,当您的程序遇到像
==这样的二字符运算符时会发生什么? -
我在这个答案中有一个 python 实现,以及如何在没有大量代码的情况下自己执行此操作的秘诀:stackoverflow.com/questions/42610626/…
标签: c++ data-structures expression-trees