宿題とか手伝えます
■ このスレッドは過去ログ倉庫に格納されています
0576中置記法から後置記法への簡単な変換方法
NGNG数字のトークンはそのまま素通しで出力。
演算子のトークンの場合は
スタックトップにある演算子より優先順位が高ければそのままその上にPUSH
スタックトップより優先順位が低いときはPUSHできるようになるまでPOPしてからPUSH
このときPOPした演算子は出力。
EOFになったらスタックに溜まっている演算子を全部POPして出力。
ってやると再帰降下するまでもなく逆ポーランドに変換できるよ。
括弧は優先順位最低の擬似的な演算子としてPUSH
括弧閉じを検出したら擬似括弧演算子までにあるほかの演算子を全部POP&出力
したあとに出力せずに取り除く
ってやれば括弧の対応も簡単。
出力のかわりにそのまま答え計算するのもアリか?
■ このスレッドは過去ログ倉庫に格納されています