- 棧
一個標準的后進先出的棧
序號 | 方法描述 |
---|---|
1 | boolean empty()測試堆棧是否為空镀娶。 |
2 | Object peek( )查看堆棧頂部的對象臊泰,但不從堆棧中移除它。 |
3 | Object pop( )移除堆棧頂部的對象,并作為此函數(shù)的值返回該對象朝氓。 |
4 | Object push(Object element)把項壓入堆棧頂部。 |
5 | int search(Object element)返回對象在堆棧中的位置主届,以 1 為基數(shù)赵哲。 |
- 前綴、中綴君丁、后綴表達式 參考
前綴枫夺、中綴、后綴表達式是對表達式的不同記法绘闷,其區(qū)別在于運算符相對于操作數(shù)的位置不同橡庞,前綴表達式的運算符位于操作數(shù)之前,中綴和后綴同理
舉例:
中綴表達式:1 + (2 + 3) × 4 - 5
前綴表達式:- + 1 × + 2 3 4 5
后綴表達式:1 2 3 + 4 × + 5 -
- 前綴表達式又稱波蘭式印蔗,前綴表達式的運算符位于操作數(shù)之前扒最。比如:- × + 3 4 5 6
- 中綴表達式就是常見的運算表達式,如(3+4)×5-6
3.后綴表達式又稱逆波蘭表達式,與前綴表達式相似华嘹,只是運算符位于操作數(shù)之后,比如: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慎璧,由此得出最終結果床嫌。