逆波蘭計算器

2021-10-08 11:48:49 字數 757 閱讀 4969

遍歷表示式。碰到數字將其放到棧中。

遇到計算符 ,從棧中彈出兩個數用計算然後再從新入棧。a

在棧中的最後乙個數即為結果、

轉換前:2*

(9+6

/3-5

)+4轉換後:

2963/+

5-*4

+------

----

----

-------

使用逆波蘭計算結果為:

16.0

public

class

rpncalculator

//如果是不是計算符,直接入棧

stack.

push

(expressionsuffix.

get(i));

}//遍歷完返回棧中最後乙個元素,既為最終答案

return double.

parsedouble

(stack.

pop())

;}//判斷是否是操作符

private

boolean

isoperator

(string v)

return

false;}

//計算結果

private

double

compute

(double v1,

double v2, string ope)

}}

逆波蘭計算器

include include include define stack init size 20 初始化棧的空間 define stackincrement 10 擴充套件空間 define maxbuffer 10 最大緩衝區 typedef double elemtype 建立乙個棧 type...

逆波蘭計算器

1.逆波蘭表示式用途 逆波蘭表示式是一種十分有用的表示式,它將複雜表示式轉換為可以依靠簡單的操作得到計算結果的表示式。例如 a b c d 轉換為ab cd 2.逆波蘭表示式邏輯實現 如果當前字元為變數或者為數字,則壓棧,如果是運算子,則將棧頂兩個元素彈出作相應運算,結果再入棧,最後當表示式掃瞄完後...

逆波蘭計算器原理

字首表示式 符號在前左,數字在右。符號數字位置考慮運算優先順序。中綴表示式 符號在數字中間 即正常書寫的表式結構 1 2 3 4 5 字尾 表示式 將要進行的部分運算的數字在前運算符號在後,接著其它部分的運算。計算表示式一般包含數值,運算子,括號,包括運算子的優先順序計算,以及括號產生的優先順序運算...