@Override
    public double evaluate() {
        switch (operand) {
            case '+': {
                return c1.evaluate() + c2.evaluate();
            }
            case '-': {
                return c1.evaluate() - c2.evaluate();
            }
            case '*': {
                return c1.evaluate() * c2.evaluate();
            }
            case '/': {
                return c1.evaluate() / c2.evaluate();
            }
            case '^': {
                return Math.pow(c1.evaluate(), c2.evaluate());
            }
            default: {
                return Double.NaN;
            }
        }
    }