關於棧的簡單例題,相信大家都看過,我看了例題後想自己實現下,比如(3+4)+(2*5-6)=
發現最大問題是算符的優先級怎麼確定,我想到用枚舉類型定義一下,這樣可以比較大小,但是有些同級啊比如加減,枚舉就解決不了了。我記得似乎有個函數可以映射一下,這樣把加減都映射到1,乘除,,,這樣,關鍵是我不熟悉那個函數,各位大神有什麼好的思路沒,指點一下吧
轉換成後綴表達式然後計算,比如你的那個算式對應的後綴表達式就是3 4 + 2 5 * 6 - +,然後用棧其實就是利用棧先進後除的原理,遇到數字進棧,遇到符號出棧,計算完了繼續進棧