栈的特点:
先进后出
栈的方法:
stack.pop():弹出最上层的数据,并弹出数据
stack.push():在栈的最上层压入数据
stack.peek():查看栈的最上层数据,但是不弹出数据
表达式:
表达式分前缀表达式、中缀表达式和后缀表达式。
中缀表达式:人类最熟悉的一种表达式1+2,(1+2)3,3+42+4等等都是中缀表示法。
前缀表达式又叫做波兰式,前缀表达式为- + A * B - C D * E F
后缀表达式又叫做逆波兰式。形如:A B C D - * + E F * -
中缀表达式对于计算机的运算并不便利,而前缀后缀表达式的计算相对简单方便。因此,需要将中缀表达式转换成前缀后缀表达式,然后利用栈结构计算前后缀表达式。
栈结构计算后缀表达式:
public static void main(String[] args) {
ReversePolandNotation poland = new ReversePolandNotation();
String suffixExpression = "30 4 + 5 * 6 -";
String result = poland.caculate(poland.getArray(suffixExpression));
System.out.println(result);
}