#include
#include
#include
#include
#include
#define maxsize 30
using
namespace std;
typedef
double elemtype;
typedef
struct
//定義乙個棧
stack;
void initstack (stack *s)
//建立空棧
void instack (stack *s,elemtype e)
//入棧
*(s-
>top)
= e;
s->top++;}
void popstack (stack *s,elemtype *e)
//出棧,把棧頂值彈出,儲存在e的位址
intmain()
cout<<
"字首表示式為:"
;for
(i=0
;i<=j-
1;i++
) cout<<
"字首表示式的值為:"
}double
sumstack
(char str[
100]
)//形參char陣列作用是將該函式中輸入的資料傳遞給實參
strcpy
(str,c)
; i=i-1;
for(i=i;i >=
0;i--
)//逆序讀入字元陣列的值
if(c1<
48|| c1>57)
//如果是運算子,則從棧中彈出兩個數運算,並把結果入棧 }}
popstack
(&s,
&pop)
;//彈出最終結果
return pop;
}
字首表示式求值
思路 這裡實際是把字首表示式逆序輸出轉化為類似後序表示式求值 比如 輸入 2 3 7 4 8 4 處理成 4 8 4 7 3 2 鍊錶,放到字尾表示式求值程式 postfixeval計算得13.0 include include include include define maxsize 100 ...
字首表示式求值
include using namespace std stackst double yunsuan double a,double b,string c else if c else if c else int main for int j i 1 j 0 j if st.empty if f1 ...
字首表示式求值
對於乙個字首表示式的求值而言,首先要從右至左掃瞄表示式,從右邊第乙個字元開始判斷,如果當前字元是數字則一直到數字串的末尾再記錄下來,如果是運算子,則將右邊離得最近的兩個 數字串 作相應的運算,以此作為乙個新的 數字串 並記錄下來。一直掃瞄到表示式的最左端時,最後運算的值也就是表示式的值。例如,字首表...