java—如何评估这种类型的算术语法树?

uurity8g  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(208)

我有一个语法树,像这样:树
当没有术语时,我可以使用类似的代码(我编写了一个更简单的伪代码)轻松地计算任何语法树:

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;
         ...
   }

}

我想我应该得到一个更简单的树而不是一个双,但我不知道如何简化一个好的方式。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题