- 栈
一个标准的后进先出的栈
序号 | 方法描述 |
---|---|
1 | boolean empty()测试堆栈是否为空。 |
2 | Object peek( )查看堆栈顶部的对象,但不从堆栈中移除它。 |
3 | Object pop( )移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
4 | Object push(Object element)把项压入堆栈顶部。 |
5 | int search(Object element)返回对象在堆栈中的位置,以 1 为基数。 |
- 前缀、中缀、后缀表达式 参考
前缀、中缀、后缀表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同,前缀表达式的运算符位于操作数之前,中缀和后缀同理
举例:
中缀表达式:1 + (2 + 3) × 4 - 5
前缀表达式:- + 1 × + 2 3 4 5
后缀表达式:1 2 3 + 4 × + 5 -
- 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前。比如:- × + 3 4 5 6
- 中缀表达式就是常见的运算表达式,如(3+4)×5-6
3.后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后,比如:3 4 + 5 × 6 -
通过逆波兰表达式计算结果
我们先看一个例子...后缀表达式3 4 + 5 × 6 -的计算
1.从左至右扫描,将3和4压入堆栈;
2.遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素,注意与前缀表达式做比较),计算出3+4的值,得7,再将7入栈;
3.将5入栈;
4.接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈;
5.将6入栈;
6.最后是-运算符,计算出35-6的值,即29,由此得出最终结果。