逆波蘭計算器原理

2021-10-08 22:36:54 字數 1697 閱讀 1869

字首表示式:符號在前左,數字在右。符號數字位置考慮運算優先順序。

中綴表示式 :符號在數字中間(即正常書寫的表式結構 「1+( (2+3) *4)-5」

字尾 表示式:將要進行的部分運算的數字在前運算符號在後,接著其它部分的運算。

​ 計算表示式一般包含數值運算子,括號,包括運算子的優先順序計算,以及括號產生的優先順序運算。

public

class

polandnotation

public

static list

toinfixexpressions

(list list)

else

if(item.

equals

("("))

else

if(item.

equals

(")"))

stack.

pop();

//消掉"("

}else

stack.

push

(item);}

}//將剩餘stack棧符號存入數字列表

while

(stack.

size()

!=0)return numlist;

}/**

* 提取字串為list

* 1.字串輸入

* 2.多位數的判斷、符號的判斷 48 - 57 字元'0' ---'9'

* 3.使用do while結構

*/public

static list

toinfixexpressionlist

(string s)

else

list.

add(str);}

}while

(i < s.

length()

);return list;

}public

static

intcaculate

(list

list)

else

else

if(item.

equals

("/"))

else

if(item.

equals

("+"))

else

if(item.

equals

("-"))

else

stack.

push(""

+res);}

}return res;

}public

static list

getlist

(string suffixexpression)

return list;}}

class

operation

else

if(operation.

equals

("/"))

else

if(operation.

equals

("+"))

else

if(operation.

equals

("-"))

else

return res;

}}

逆波蘭計算器

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.逆波蘭表示式邏輯實現 如果當前字元為變數或者為數字,則壓棧,如果是運算子,則將棧頂兩個元素彈出作相應運算,結果再入棧,最後當表示式掃瞄完後...

逆波蘭計算器

遍歷表示式。碰到數字將其放到棧中。遇到計算符 從棧中彈出兩個數用計算然後再從新入棧。a 在棧中的最後乙個數即為結果 轉換前 2 9 6 3 5 4轉換後 2963 5 4 使用逆波蘭計算結果為 16.0public class rpncalculator 如果是不是計算符,直接入棧 stack.pu...