हमें 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]