যদিও জাভাস্ক্রিপ্টের অ্যারেগুলি স্ট্যাকের সমস্ত কার্যকারিতা প্রদান করে, আসুন আমাদের নিজস্ব স্ট্যাক ক্লাস বাস্তবায়ন করি। আমাদের ক্লাসে নিম্নলিখিত ফাংশন থাকবে -
- পুশ(এলিমেন্ট):স্ট্যাকের উপরে এলিমেন্ট পুশ করার ফাংশন।
- pop():ফাংশন যা উপরে থেকে একটি উপাদান সরিয়ে দেয় এবং ফেরত দেয়।
- পিক():স্ট্যাকের উপরে উপাদানটি ফেরত দেয়।
- isFull():আমরা স্ট্যাকের উপাদানের সীমাতে পৌঁছেছি কিনা তা পরীক্ষা করে।
- isEmpty():স্ট্যাকটি খালি কিনা তা পরীক্ষা করে।
- ক্লিয়ার():সমস্ত উপাদান সরান।
- display():অ্যারের সমস্ত বিষয়বস্তু প্রদর্শন করুন
আসুন একটি সাধারণ ক্লাস সংজ্ঞায়িত করে শুরু করা যাক একটি কনস্ট্রাক্টর যা স্ট্যাকের সর্বোচ্চ আকার নেয় এবং একটি হেল্পার ফাংশন ডিসপ্লে() যা আমাদের সাহায্য করবে যখন আমরা এই ক্লাসের জন্য অন্যান্য ফাংশনগুলি বাস্তবায়ন করব। স্ট্যাকটি পূর্ণ বা খালি কিনা তা পরীক্ষা করতে আমরা আরও 2টি ফাংশন সংজ্ঞায়িত করেছি, isFull এবং isEmpty৷
সম্পূর্ণ৷ ফাংশন শুধু পরীক্ষা করে যে কন্টেইনারের দৈর্ঘ্য ম্যাক্স সাইজের সমান বা তার বেশি এবং সেই অনুযায়ী রিটার্ন করে।
খালি আছে ধারকটির আকার 0 কিনা তা ফাংশন পরীক্ষা করে।
আমরা অন্যান্য অপারেশন সংজ্ঞায়িত করার সময় এগুলি সহায়ক হবে৷ এই বিন্দু থেকে আমরা যে ফাংশনগুলিকে সংজ্ঞায়িত করব তা সবই স্ট্যাক ক্লাসের ভিতরে চলে যাবে।
উদাহরণ
class Stack {
constructor(maxSize) {
// Set default max size if not provided
if (isNaN(maxSize)) {
maxSize = 10;
}
this.maxSize = maxSize; // Init an array that'll contain the stack values.
this.container = [];
}
// A method just to see the contents while we develop this class
display() {
console.log(this.container);
}
// Checking if the array is empty
isEmpty() {
return this.container.length === 0;
}
// Check if array is full
isFull() {
return this.container.length >= maxSize;
}
push(element) {
// Check if stack is full
if (this.isFull()) {
console.log("Stack Overflow!");
return;
}
this.container.push(element);
}
}