//package useOfADT;
import java.util.Stack;
public class PostfixExpressions {
	Stack<Double> stack=new Stack<>();
	private boolean isNumber(Character c)
	{
		return Character.isDigit(c);
	}
	
	private boolean isOperator(Character c)
	{
		String s=new String("+-*/");
		return s.contains(c.toString());
	}
	
	public double evaluate(String postfix)
	{
		for(int i=0;i<postfix.length();i++)
		{
			Character c=postfix.charAt(i);
			if(isNumber(c))
				stack.push(Double.parseDouble(""+c));
			else if(isOperator(c))
			{
				double result=0d;
				if(c=='+')
					result=stack.pop()+stack.pop();
				else if(c=='-')
					result=stack.pop()-stack.pop();
				else if(c=='*')
					result=stack.pop()*stack.pop();
				else if(c=='/')
					result=stack.pop()/stack.pop();
				stack.push(result);
			}
		}
		return stack.pop();
	}
}