使用堆疊的 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]
廣告
資料結構
網路連線
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP