//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();
}
}