寫在前面:考研複習到棧,棧的乙個經典應用例題就是《基本計算器》,這個演算法手寫過程我很熟悉,但是**實現不是很熟手,因此複習階段有必要把這個演算法總結一下。
#
include
#include
#include
#include
using namespace std;
intcal
(vector words, map<
char
,int
> m)
else
if(op.
empty()
||op.
top()==
'(')
op.push
(c);
else
int b = nums.
top();
nums.
pop();
int a = nums.
top();
nums.
pop();
switch
(op.
top())
nums.
push
(a);
//計算之後再入棧
op.pop();
// 符號出棧}if
(c!=
')')
// 如果當前符號是右括號不必入符號棧
op.push
(c);
//當前符號入棧}}
return nums.
top();
}int
main()
if(!num.
empty()
)char c = input[i];if
(c==
' ')
//空格直接跳過
continue
;else
}int ans =
cal(words, m)
; cout
}
ccf-csp題目相關
二十四點
#
include
#include
#include
using namespace std;
intmain()
nums.
push
(a);
//計算後的數再壓入棧
op.pop();
} op.
push
(c);
//當前符號入棧}}
if(nums.
top()==
24)printf
("yes\n");
else
printf
("no\n");
nums.
pop();
//清空棧
op.pop();
}return0;
}
c 資料結構 棧的應用 計算器
新年第一次發,這幾天在複習期末考試。但是好像已經複習完了但是還有十天多才考試感覺挺無聊的就寫個計算器。但是 太難看。裡一堆的if else。我還是學好catch throw吧!先貼出來。看看再修修補補,好好弄弄結構。買了明晚星戰的票。那今晚要不要出去high呢。pragma once ifndef ...
資料結構之棧 實現簡單計算器
numstack.push res 入棧 將數棧的最後數,pop 出,就是結果 int res2 numstack.pop system.out.printf 表示式 s d expression,res2 先建立乙個棧,直接使用前面建立好 定義乙個 arraystack2 表示棧,需要擴充套件功能...
簡單計算器(棧結構)
描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值.輸入格式 多case,包含若干個測試用例,每個用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應結果不要輸出.輸出格式 每個測試用例輸出一行,即該表示式的值,精確到小數點後2...