演算法筆記7 棧的應用 簡單計算器

2021-09-12 17:56:31 字數 709 閱讀 4340

思路:1.先將中綴表示式轉成字尾表示式,

2.計算字尾表示式

#include #include #include #include #include #include using namespace std;

struct node;

string str;

stacks; //在change()存放操作符,在cal()中存放運算元

queueq; //存放字尾表示式的佇列

mapmap; //關於操作符的對映

void change()

q.push(temp); //存入字尾表示式的佇列中

}else

temp.op = str[i] ; //將當前操作符

s.push(temp); // 入棧

i++;

} }//for

while(!s.empty() )}

double cal() }

return s.top().num; //最後剩下的就是結果

} int main()

while(!s.empty()) s.pop(); //初始化棧,避免棧不為空,留了東西

change();

printf("%.2lf\n" , cal());

} return 0;

}

7 棧應用 加減乘數計算器

1 首先分為兩個棧 數棧和操作符棧 簡稱符棧 2 定義index變數,用於遍歷字串 6 1 2 3 如果當前遍歷的字元是數字,直接入數棧 4 如果當前遍歷的字元是操作符,分為兩種情況 4.1 如果符棧為空,直接將操作符放入符棧 4.2 如果符棧不為空,又分為兩種情況 4.2.1 如果當前操作符a的優...

簡單計算器(棧)

開始複習棧,這個題感覺見得很多,各種各樣的,但是核心思路就是把中綴表示式轉化為字尾表示式,我們老師說這個東西也叫作中序二叉樹轉後序二叉樹。大概實現的方式就是用棧來實現 最開始感覺沒啥思路,因為之前一直都不會這種題 論為什麼我這麼菜,之前沒有好好學過棧,知道了stl中有stack後還是方便很多 第一次...

hdu 1237 簡單計算器 (棧的簡單應用)

感覺自己很菜,乙個棧的應用,寫了好久,還是 能力弱啊 剛開始直接用的開了兩個棧,結果在判空時出現問題,改用自己寫的棧,還是wa,一怒之下上網查了一下,原來是我理解有問題,汗 我們在算加減乘除的時候,總是先算乘除,再算加減,還有一點就是,再算加減的時候也要從左往右算,否則就wa了。自己寫的 wa了 1...