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