NumberElement calculate(NumberElement left, NumberElement right, OperatorElement op)
        {
            Double temp = Double.MaxValue;

            if (op.type == OperatorType.ADD)
            {
                temp = left.getNumber() + right.getNumber();
            }
            else if (op.type == OperatorType.SUBTRACT)
            {
                temp = left.getNumber() - right.getNumber();
            }
            else if (op.type == OperatorType.MULTIPLY)
            {
                temp = left.getNumber() * right.getNumber();
            }
            else if (op.type == OperatorType.DIVIDE)
            {
                temp = left.getNumber() / right.getNumber();
            }
            else if (op.type == OperatorType.EXPONENTIAL)
            {
                temp = Math.Pow(left.getNumber(), right.getNumber());
            }

            return(new NumberElement(temp.ToString()));
        }
 int Precedence(OperatorElement c)
 {
     if (c.type == OperatorType.EXPONENTIAL)
     {
         return(2);
     }
     else if (c.type == OperatorType.MULTIPLY || c.type == OperatorType.DIVIDE)
     {
         return(3);
     }
     else if (c.type == OperatorType.ADD || c.type == OperatorType.SUBTRACT)
     {
         return(4);
     }
     else
     {
         return(Int32.MaxValue);
     }
 }