Queue এর জীবন বৃত্তান্ত

 ডাটা স্ট্রাকচারের জগতে কিউ একটা গুরুত্বপূর্ণ ডাটা স্ট্রাকচার যার ব্যাবহার আমরা রেগুলারই করি কিন্তু কি কাজে লাগে তাই আমরা জানি না । ভার্সিটির চাপে পড়ে হুদাই বসে বসে কোড মুখস্থ করে আমরা কিউ শেষ করার চেষ্টা করি।

আসেন আমরা আজকে কিউ শেখার চেষ্টা করি একটু আমার মত করে।

স্ট্যাকের মত কিউ এর অপারেশন দুইটাই

ক। ইনসার্শন যাকে বলি আমরা এনকিউ

খ। ডিলিশন যাকে বলি আমরা ডিকিউ

কিউ আবার একটু আলাদা স্ট্যাকের থেকে সে কাজ করে যে আগে আসছে তাকে সে আগে ছেড়ে দিবে। ঠিক আপনার লাইফের টক্সিক জবগুলোর মত। আগে শুরু হইছে মানে আগেই শেষ হবে।

কিউ কে যদি আমরা একটা পাইপ হিসেবে ধরি তাহলে পাইপের একপাশ দিয়ে পানি ঢোকে আরেক পাশ দিয়ে সেই পানি বের হয়। যে পাশ দিয়ে পানি ঢোকে সেটাকে বলতেছি আমরা রেয়ার আর যেপাশ দিয়ে পানি বেরিয়ে যাচ্ছে  সেটাকে বলতেছি ফ্রন্ট।

কিছু কিছু জিনিষ মাথায় রাখতে হবে

·        হাইপোথেটিকালি একটা ফাঁকা কিউ এর ফন্ট এবং রেয়ার দুটোই -১ ধরে নিতে হয়

·        যদি ফাঁকা কিউ এ ডাটা ইনসার্ট করতে হয় তবে প্রথম কাজ হলো ফ্রন্ট এবং রেয়ার দুটোকেই ০ দিয়ে রিপ্লেস করে নিতে হয় বা ইনক্রিমেন্ট অপারেশন চালাতে হয় পরে রেয়ার ইনডেক্সে ডাটা ইনসার্ট করতে হয়

·        কিউ যদি এক্কেবারেই ফাঁকা না হয় তবে শুধু  রেয়ার ইনডেক্সকে এক ঘর ইনক্রিমেন্ট দিয়ে এগিয়ে নিতে হয় এবং অতঃপর ডাটা ইনসার্ট করতে হয়।

·        ডাটা ইনসার্ট করতে করতে যদি এমন অবস্থা  হয় যে রেয়ারের সাইজ এরের সাইজের চেয়ে এক কম হয় তবে ধরে নিতে হবে কিউটিতে জায়গা পরিপূর্ণ হয়ে গেছে। এর পরে ডাটা ইনসার্ট করলে অভারফ্লো হবে।

·        ধরেন আপনি এখন ডাটা ডিলিট করবেন। কি করতে হবে একটাই কাজ এবার ফ্রন্টকে আগিয়ে দেন এক ঘর। পিছের ডাটা সাথে সাথেই মুছে যাবে। 

·        তবে সাবধানতা এখানেও আছে আগে চেক করে নিতে হবে হেড ও রেয়ার এর ভ্যালু -১ কিনা তাহলে কিন্তু আন্ডারফ্লো কনডিশন হবে।

·        অনেক সময় এমন অবস্থার তৈরী হবে যখন কখনো কখনো আমরা এনকিউ করব আবার কখনো ডিকিউ করব। এমন অবস্থার সৃষ্টি হবে যেখানে দেখা যাবে রেয়ার এখন N-1 ইনডেক্সে আছে আর ফ্রন্ট আছে N-2 ইনডেক্সে। তারমানে এর পূর্ববর্তী ঘরগুলো তো ফাঁকাই আছে। সেগুলো তাহলে ব্যাবহার করা যেতে পারে। না বন্ধুগন তা সম্ভব না। এক্ষেত্রেও এনকিউ করলে ওভারফ্লো কন্ডিশন হবে। 

এখন আসি টাইম কমপ্লেক্সিটিতে 

·        ইনসার্ট করেন বা ডিলিট টাইম কমপ্লেসিটি - O(1) সব সময়

·        সব ডাটা দেখতে - O(n) যেখানে n যতগুলো এলিমেন্ট আছে তার সংখ্যা

কি কাজে লাগেঃ

·        প্রিন্টিং সফটওয়্যার বানাতে এটা সবচেয়ে বেশি কাজে লাগে

·        কম্পিউটারের প্রসেসরের প্রসেস সিডিউলিং এটা দিয়েই হয় অনেকাংশে

আজকে এতটুকুই আগামী দিন এই ভদ্রলোকের আরেক রূপ সার্কুলার কিউ নিয়ে আমি ছোট করে লেখার চেষ্টা করব। যেকোন প্রশ্ন থাকলে প্লিজ মেইল করুন joybaust50@gmail.com 

মন্তব্যসমূহ