字首表示式:符號在前左,數字在右。符號數字位置考慮運算優先順序。
中綴表示式 :符號在數字中間(即正常書寫的表式結構 「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...