我有一个语法树,像这样:树
当没有术语时,我可以使用类似的代码(我编写了一个更简单的伪代码)轻松地计算任何语法树:
double evaluate(Node node){
if(numeric(node.value))
return node.value;
else{
Operator op = getOperator(node);
double v1 = evaluate(node.leftNode);
double v2 = evaluate(node.rightNode);
switch(op)
case ADD:
return v1 + v2;
...
}
}
我想我应该得到一个更简单的树而不是一个双,但我不知道如何简化一个好的方式。
暂无答案!
目前还没有任何答案,快来回答吧!