Пример #1
0
 public double evaluate(EvaluationNode node)
 {
     if (node == null)
     {
         return(0);
     }
     else if (node.getNodeType() == EvaluationNodeType.NUMBER)
     {
         NumberNode numberNode = (NumberNode)node;
         return(numberNode.evaluate());
     }
     else if (node.getNodeType() == EvaluationNodeType.VARIABLE)
     {
         VariableNode variableNode = (VariableNode)node;
         return(variableNode.evaluate(x));
     }
     else if (node.getNodeType() == EvaluationNodeType.FUNCTION)
     {
         FunctionNode functionNode = (FunctionNode)node;
         return(functionNode.evaluate(x));
     }
     else
     {
         OperatorNode operatorNode = (OperatorNode)node;
         double       a            = evaluate(node.left);
         double       b            = evaluate(node.right);
         return(operatorNode.evaluate(a, b));
     }
 }