**如下:
using system;
using system.collections;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
console.
writeline()
;// 轉換為逆波蘭表示式
console.
write
("字尾表示式:");
list<
string
> postfixexpressionlist =
getreversepolishnotation
(infixexpressionlist)
;foreach
(string code in postfixexpressionlist)
console.
writeline()
;// 計算結果
console.
write
("運算結果:");
double result =
calculatereversepolishnotation
(postfixexpressionlist)
; console.
writeline
(result)
; console.
readkey()
;}///
/// 是否為運算元
///
///
///
static
bool
isnumber
(string code)
///
/// 是否為運算子
///
///
///
static
bool
isoperator
(string code)
///
/// 獲取運算子優先順序
///
///
///
static
intgetoperatorpriority
(string code)
return priority;
}///
/// 計算兩個運算元的結果
///
///
///
///
///
static
double
getvalue
(string code,
double x,
double y)
return result;
}///
/// 解析四則混合運算表示式
///
///
///
static list<
string
>
getexpressionlist
(string expression)
else
list.
add(number)
; temp.
clear()
;}}else
list.
add(number)
; temp.
clear()
;}}}
return list;
}///
/// 獲取逆波蘭表示式
///
///
///
static list<
string
>
getreversepolishnotation
(list<
string
> list)
else
else
if(text ==
")")
operatorstack.
pop();
}else
else
else}}
}}// 遍歷剩餘運算子
while
(operatorstack.
count()
>0)
// 反轉運算子順序
list<
string
> result =
newlist
<
string
>()
;while
(operandstack.
count()
>0)
result.
reverse()
;return result;
}///
/// 計算逆波蘭表示式
///
///
///
static
double
calculatereversepolishnotation
(list<
string
> list)
else
}return stack.
pop();
}}}
執行結果如下:
中綴表示式:2*(3+4)
字尾表示式:234+*
運算結果:14
四則運算表示式 逆波蘭表示式
感覺是一塊比較偏門的東西,特此記錄下 或者叫字尾表示式,我們原先用的一直都是中綴表示式,但是因為如果表示式過長,計算機計算起來不方便。需要先遍歷一邊,找出其中的 進行優先計算,如果有多個 疊加的話就更麻煩了。於是為了計算機的方便計算,將中綴表示式轉換成字尾表示式,計算機便可以使用棧的特性,來快速的計...
逆波蘭表示式解決四則運算
逆波蘭表示式又叫做字尾表示式,它將複雜表示式轉換為可以依靠簡單的操作得到計算結果的表示式,解決了四則運算中括號改變運算子優先順序的問題。四則運算的表示式一般都是中綴表示式如 1 2 3 4 5,即操作符在兩個運算元之間。四則運算需要兩個步驟,一是把中綴表示式轉為字尾表示式,二是由字尾表達生成結果 c...
不用逆波蘭表示式計算簡單四則運算
思路很簡單,按 分割,分割完給 分割然後給 最後給 分割,如果分割 後有 就算 有 就算 有 就算 直到結果。這裡有個值得注意的小問題,就是在 的時間,前面有負號和沒有負號,如果有 號,分割後第乙個索引是沒有值的,由於第一位是負號,於是算第乙個數要取反,後面就是都是減了,很簡單如下 public s...