Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptのスタックを使用したプレフィックス計算機


JavaScriptのスタックを使用してRPN(逆ポーランド記法)入力方式で計算機を作成する必要があります。

次の入力配列を考えてみましょう-

const arr = [1, 5, '+', 6, 3, '-', '/', 7, '*'];

プロセス-

  • 1はオペランドであり、スタックにプッシュします。

  • 5はオペランドであり、スタックにプッシュします。

  • '+'は演算子で、1と5をポップし、それらを計算して結果をスタックにプッシュします。

  • 6はオペランドであり、スタックにプッシュします。

  • 3はオペランドであり、スタックにプッシュします。

  • '−'は演算子で、6と3をポップし、それらを減算して結果をスタックにプッシュします。

  • '/'は演算子で、6と3をポップし、それらを分割して結果をスタックにプッシュします。

  • 7はオペランドであり、スタックにプッシュします。

  • '*'は演算子で、2と7をポップし、それらを乗算して結果をスタックにプッシュします。

そして最後に、出力は-

になります。
const output = 14;

このためのコードは-

になります
const arr = [1, 5, '+', 6, 3, '−', '/', 7, '*'];
const stackCalculator = (arr = []) => {
   const options = {
      '+': (a, b) => a + b,
      '−': (a, b) => a - b,
      '*': (a, b) => a * b,
      '/': (a, b) => a / b
   };
   const stack = [];
   arr.forEach(value => {
      stack.push(value in options
      ? options[value](...stack.splice(-2))
      : value
      );
   });
   return stack;
};
console.log(stackCalculator(arr));

出力

そして、コンソールの出力は-

になります
[14]

  1. JavaScriptのインポートで「{}」を使用しますか?

    以下は、javaScriptインポートで{}を使用するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>  

  2. JavaScriptでのスタックの実装

    以下は、JavaScriptでスタックを実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>