সার্কুলার কিউ - ডেটা স্ট্রাকচারের চক্করের আরেকটি অধ্যায়
Queue
বা Linear Queue হলো একটি লিনিয়ার ডেটা স্ট্রাকচার যার একপাশ দিয়ে ডাটা ইনসার্ট করা
হয় আরেকপাশ দিয়ে তা ডিলিট করে দেয়া হয় যেমনটা আগের আলোচনায় বলেছিলাম। এখন আসি এই
Linear Queue এর সমস্যা কি? সমস্যা কিছুই না আবার অনেক কিছু । আমরা ডাটা স্ট্রাকচার
ব্যাবহারই করি যাতে আমাদের তথ্যের সংরক্ষণের খাতিরে ম্যামরীর যথাযুক্ত ব্যাবহার নিশ্চিত
করা যায়। এখানেই আসল সমস্যার সৃষ্টি হচ্ছে Linear Queue এ। ধরি ৫ টি ডাটা রাখতে পারে
এমন একটি Linear Queue এ আপনি ৫ বার Equeue অপারেশন চালালেন ও ৪ বার Dequeue অপারেশন
চালালেন ফলাফল কি হতে পারে? আপনার front এর ভ্যালু তখন হবে ৩ এবং রেয়ার হবে ৪ ফলে আপনি
যখন আবার একটি Enqueue অপারেশন চালাতে যাবেন ঠিক তখনই আপনাকে দেখাবে লিস্ট ইজ ফুল ।
কিন্তু এদিকে ০ থেকে ২ নং ইনডেক্স যে ফাঁকা এটা সে ভুলে বসে আছে। তবে কি করব? এই সমস্যার
সমাধানই হলো Circular queue যেখানে rear যখনই ম্যাক্সিমাম ইনডেক্সের পৌছে যাবে তা শুরুর
ইনডেক্সকে চেক করবে যদি সেটা ফাঁকা থাকে তবে সেখানে ডাটা ইনসার্ট করার সুযোগ পাবেন
নয়ত দেখাবে ওভার ফ্লো কনডিশন।
চেক
করার ক্ষেত্রে,
(Rear+1)%N==Front
এই শর্তটাই
চেক করে আমরা Queue টি ফুল কিনা তা চেক করব। Rear পরিবর্তন করব,
Rear = (Rear+1)%N
আবার Dequeue
অপারেশন চালাতেও একই Front কে ইনক্রিমেন্ট না করে
Front = (Front+1)%N
এই ইকুয়েশনের
মাধ্যমে Front পরিবর্তন করব।
যে কোন প্রশ্ন থাকলে মেইল করতে পারেন joybaust50@gmail.com এ



মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন