আমাদের জাভাস্ক্রিপ্টে স্ট্যাক ব্যবহার করে 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]