যদিও জাভাস্ক্রিপ্টের অ্যারেগুলি একটি সারির সমস্ত কার্যকারিতা প্রদান করে, আসুন আমাদের নিজস্ব কিউ ক্লাস বাস্তবায়ন করি। আমাদের ক্লাসে নিম্নলিখিত ফাংশন থাকবে -
- enqueue(element):সারিতে একটি উপাদান যোগ করার ফাংশন।
- dequeue():ফাংশন যা সারি থেকে একটি উপাদান সরিয়ে দেয়।
- উঁকি ():সারির সামনে থেকে উপাদান ফেরত দেয়।
- isFull():আমরা সারিতে থাকা উপাদানের সীমাতে পৌঁছেছি কিনা তা পরীক্ষা করে।
- isEmpty():সারিটি খালি কিনা তা পরীক্ষা করে।
- clear():সমস্ত উপাদান সরান।
- প্রদর্শন():অ্যারের সমস্ত বিষয়বস্তু প্রদর্শন করুন
আসুন একটি সাধারণ ক্লাস সংজ্ঞায়িত করে শুরু করা যাক একটি কনস্ট্রাক্টর যা সারির সর্বোচ্চ আকার নেয় এবং একটি সহায়ক ফাংশন যা আমাদের সাহায্য করবে যখন আমরা এই শ্রেণীর জন্য অন্যান্য ফাংশনগুলি বাস্তবায়ন করি। যেমন আমরা স্ট্যাকগুলি প্রয়োগ করেছি, আমরা অ্যারে ব্যবহার করে সারিগুলিও প্রয়োগ করব৷
উদাহরণ
class Queue {
constructor(maxSize) {
// Set default max size if not provided
if (isNaN(maxSize)) {
maxSize = 10;
}
this.maxSize = maxSize;
// Init an array that'll contain the queue values.
this.container = [];
}
// Helper function to display all values while developing
display() {
console.log(this.container);
}
// Checks if queue is empty
isEmpty(){
return this.container.length === 0;
}
// checks if queue is full
isFull() {
return this.container.length >= this.maxSize;
}
} সারিটি পূর্ণ বা খালি কিনা তা পরীক্ষা করার জন্য আমরা আরও 2টি ফাংশন সংজ্ঞায়িত করেছি, isFull এবং isEmpty।
isFull ফাংশন শুধু পরীক্ষা করে যে ধারকটির দৈর্ঘ্য maxSize এর সমান বা তার বেশি এবং সেই অনুযায়ী রিটার্ন করে।
isEmpty ফাংশন কনটেইনারের আকার 0 কিনা তা পরীক্ষা করে।
আমরা অন্যান্য অপারেশন সংজ্ঞায়িত করার সময় এগুলি সহায়ক হবে৷ এই বিন্দু থেকে আমরা যে ফাংশনগুলিকে সংজ্ঞায়িত করব তা সবই কিউ ক্লাসের ভিতরে চলে যাবে৷