আপডেট

Tuesday, March 24, 2015

introduction to queue

                                  queue পরিচিতি 
ইংরেজি শব্দ  "queue" শব্দটির অর্থ হল সারি! ইংরেজিতে-   queue is an example of a linear data structure, or more abstractly a sequential collection. Queues provide services in computer science, transport, and operations research where various entities such as data, objects, persons, or events are stored and held to be processed later. (উইকিপিডিয়া) 

queue অন্যন্য ডাটা স্ট্রাকচারের মতই একটি ডাটা স্ট্রাকচার। আমরা আদের দৈনন্দিন জীবনে এটা প্রায়ই লক্ষ করি। যেমন,  বিদ্যুত বিল দিতে গেলে লাইনে দাঁড়িয়ে দিতে হয় সেটা একটা কিউ; ডিজিটাল ওয়ার্ল্ডে দেখতে গেলে লাইনে দাঁড়িয়ে ঢুকতে হয়; ব্যাংক থেকে টাকা তুলতে গেলে কিম্বা টাকা জমা দিতে গেলে সেখানেও লাইনে দাড়াতে হয় আবার ঢাকা শহরে পুটপাতেও মাঝে মাঝে হাটতে গেলে কিউ তৈরি হয় :P !  মানে আমাদের প্রচলিত জীবন ব্যাবস্থার সর্বক্ষেত্রে রয়েছে কিউ এর ব্যাবহার! 
চিত্রঃ  কিউ 

queue and stack (স্ট্যাক এবং কিউ) :  কিউ এর সাথে স্ট্যাকের যথেষ্ঠ মিল আছে। তবে পার্থক্য শুধু  স্ট্যাকে ইনপুট এবং আউটপুট এক দিক দিয়ে হয় আর কিউ এর ইনপুট একদিকে আউটপুট অন্য প্রান্ত দিয়ে হয়। স্ট্যাক হল FILO কিন্তু কিউ হল FIFO-First In First Out. অর্থাৎ যে আগে আসবে সে আগে pop হবে এরকম! বাস্তব লাইফের কিউ এর দিকে লক্ষ করুন যিনি আগে আসেন তিনি আগেই সেবা নিয়ে চলে যান ! প্রোগ্রামিং এও ঠিক একই রকম ব্যাপারটা। যে প্রান্ত দিয়ে ইনপুট হয় তাকে বলা হয় rear (পেছন) আর যে প্রান্ত দিয়ে বের হয় তাকে বলা হয় front অথবা head.  আশা করি কারো বুজতে অসুবিধা হয়নি।

Uses of queue (কিউ এর  ব্যাবহারঃ কম্পিউটার সায়েন্সের অন্যতম গুরুত্বপূর্ণ ব্যাবহার হল printers queue. যখন একই প্রিন্টারের সাথে এক বা একাধিক পিসি থেকে কমান্ড দেওয়া হয় তখন সবগুলোর প্রিন্ট একসাথে করেনা বা করা সম্ভবও হয়না। তখন কিউ ফলো করা হয়। যার কমান্ড আগে দেওয়া হয় তারটা আগে করা হয় এভাবে পর্যায়ক্রমে সবগুলো প্রিন্ট করা শেষ করে।

মাল্টিপল কানেকশন 
 এ সিস্টেমটা ম্যান্ডেটরি যেখানে একাধিক পিসিতে মাত্র একটি প্রিন্টার ব্যাবহার করা হয়। ভিবিন্ন ধরনের প্রতিষ্ঠানে এটা দরকার হয় যেমন , বিশ্ববিদ্যালয়ের ফ্যাকাল্টি রুম! এছাড়াও প্রসেস সিডিউলিং এবং সিমুলেটিং ওয়েটিং এর কাজেও ব্যাবহার করা হয়। 

queue Operation (কিউ অপারেশন):  কিউ তে নিন্মোক্ত অপারেশন করা হয়-
1. Enqueue: ডাটা প্রবেশ করানোর জন্য এটা ব্যাবহার করা হয়।  এটা স্ট্যাকের push অপারেশনের মত । 
2. Dequeue: ডাটা বের করে আনার জন্য এটা ব্যাবহার করা হয়। এটা স্ট্যাকের pop এর মত। 
3. Display: ডাটা দেখাতে হবে তো ! 

Queue Implementation: কিউ দুইভাবে ইমপ্লিমেন্টেশন করা হয়। একটি হল  অ্যারে দিয়ে আরেকটি হল লিঙ্ক লিস্ট দিয়ে। পরবর্তীতে  দুই টাইপ ই আলোচনা করা হবে। চিত্রটি লক্ষ করুন। 
চিত্রে দেখা যাচ্ছে সবার আগে 37 ইনপুট দেওয়া হল এবং সেটা সবার আগে রিমোভ হয়ে যাচ্ছে। ক্রমান্বয়ে এভাবে ঘটতে থাকবে। টাইপ অনুযায়ী rear/front এর পরিবর্তন হবে। 
 আজ এ পর্যন্তই! পরবর্তীতে দেখবো কিভাবে অ্যারে দিয়ে ইমপ্লিমেন্টেশন করা হয়। কিপ টাচ!