用棧實現四則運算

2022-01-31 13:28:23 字數 1031 閱讀 6662

//

************ 課本53頁,用棧來實現的簡單的四則運算表示式. '#'是表示式結束符,

注意在表示式輸入完畢後需再輸入乙個'

#'表示結束. eg:4+2*3-10/5# **********//

#include#include

#include

#include

#include

using

namespace

std;

stack

opnd; //

運算元棧

stack optr; //

算符棧char expression[100]; //

用於盛放表示式

char compare(char a, char b); //

返回兩算符a和b的優先順序關係

int calculate(int a, int b, char op); //

返回計算結果

int evaluateexpression(); //

求值過程

bool isoptr(char c); //

是否是算符

intmain()

char compare(char a, char b)

int calculate(int a, int b, char op) //

返回計算結果

}bool isoptr(char

c)int evaluateexpression()

opnd.push(num);

}else}}

optr.push('#

'); //

在表示式最左邊增設乙個'#'構成整個表示式的一對'#'

int res=opnd.top();

opnd.pop();

return

res;

}

棧 實現四則運算

題目描述 給定乙個字串描述的算術表示式,計算出結果值。輸入字串長度不超過100,合法的字元包括 0 9 字串內容的合法性及表示式語法的合法性由做題者檢查。本題目只涉及整型計算。題目描述 給定乙個字串描述的算術表示式,計算出結果值。輸入字串長度不超過100,合法的字元包括 0 9 字串內容的合法性及表...

用位運算實現四則運算

1 這個 主要用位運算實現四則運算 2 public class figureout 1314 加法的實現 15public static int add int a,int b else33 34 減法的實現 35public static int minus int a,int b 44 乘法的...

用棧解決四則運算問題

本文章的解決方法參考了 大話資料結構 中關於棧的應用介紹 值得注意的是,書中關於中綴表示式轉字尾的講解中不盡清楚。本人也在這裡花了點時間進行推敲錯誤的原因,也在網上搜到了這篇文章,比較好地介紹了中綴轉字尾的的規則 原理 用計算機求解四則運算,可以使用棧。因為棧的 先進後出 的特性正好滿足了能通過字尾...