割り当てのために、逆ポーランド記法で方程式が与えられます。この例では、次を使用します。 は、式の終わりを示すためのものです2 3 8 * + $
。$
スタックを使用して、答えを出力します。
私は使用しています:
getline(cin, input, '&');
input.c_str();
式を読み取り、それを c_string に変換して、入力内の個々の要素を確認できるようにします。
その後、いくつかのことを確認する必要があります。要素が数字の場合、スタックにプッシュする必要があります。空白の場合はスキップする必要があります。
if (isdigit(input[i]))
{
push();
i++;
}
else if (isspace(input[i]))
{
i++;
}
今私が立ち往生しているものです。演算子 (この場合は*
) をヒットした場合、上位 2 つの要素をスタックからポップして「操作」し、結果をスタックにプッシュする必要があります。しかし、彼らがオペレーターであると認識できるようなものは何も知りません。ばかげた質問かもしれませんが、助けていただければ幸いです。