1.ポーランドはこのトピックに関する表現を見るために使用されるが、常に、Haofanの店舗数と演算子を感じたスタックは実際には非常に簡単です発見し、後に学びました。
そして、悲しい物語がある、しかし、最初の最初の時間は、私は、データの正確性の損失をセットTMPの二つの数がintになった操作スタックの結果を格納するために気にしません、
私は知らなかったの前に次の時間、私は、上記の問題点を変更し、あまりにも怠惰な、カウンタは、二重、配列インデックスになるように設定され、このint型でなければなりませんが、おそらく常識、スパイシーなチキンです!!!
元のタイトルとコードを投稿、私を修正してください、私は愚かなので、よく書かれた入力があると思います
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 int型のCNT; ダブル、B、TMP; INT JDG(ストリングS) { もし、(S == " + " || S == " - " || S == " * " || S == " / ")戻り 0 ; リターン 1 ; } スタック < ダブル > STK。 ストリング S [ 101 ]。 INT メイン() { 一方、(CIN >> S [CNT])CNT ++ 。 用(int型 I = CNT- 1 ; I> = 0 ; i-- ) { 場合(JDG(S [I])) { 場合(S [i]は.find(' ' ))stk.push(atof( S [i]は.c_str()))。 他 stk.push(1.0 * 税引後営業利益(S [i]の.c_str())); } 他 { A = stk.top(); stk.pop()。 B = stk.top(); stk.pop()。 もし(S [I] == " + ")TMP = A + B; そう であれば(S [I] == " - ")TMP = A- B。 そう であれば(S [I] == " * ")TMP = *のB。 他の TMP = A / B; stk.push(TMP)。 } } COUT << 固定 <<てSetPrecision(6)<< stk.top()<< ENDL。 リターン 0 ; }
2.スタック双方向
主題自体は難しくありませんが、学校循環キューの前にそれを行うには、ので、少し複雑に検討し、実際には、あなたが本当にフリップを行くことができないにも知ってほしいして愚かひっくり返す、それはフルの場合を考えていないことを十分に大きく長い列を設定します、または確かにタイムアウトは、フラグのようなスタックを示すように設定されています
問題は、彼らは非常に完全な感じにしたいとき循環キューの前に、やることで、最終的に実行時エラーを与えられている、このエラーは、実際に一般的である範囲外の配列の添字で、除数が両方のケースでは0で、結果はトラブルに彼を行ってきました。 .....尾=(尾+ 1)%MAXNを持って、安全な再生したり、尾=(テール+ 1 + MAXN)%MAXNのように記述する必要があります
ペアを是非!Oを破る方法を誰かのようなビット(╥﹏╥)O