একটি সারি হল একটি রৈখিক ডেটা স্ট্রাকচার যেখানে অপারেশনের ক্রম হল FIFO (প্রথমে প্রথম আউট)।
অ্যারে হল একটি ডাটা স্ট্রাকচার যাতে একই ডাটা টাইপের উপাদান থাকে, ক্রমাগত মেমরি অবস্থানে সংরক্ষিত থাকে।
সারিতে সন্নিবেশ এবং মুছে ফেলার ক্রিয়াকলাপগুলি সারির বিপরীত প্রান্তে করা হয়। স্ট্যাকের তুলনায় বাস্তবায়ন একটু বেশি জটিল।
সারির অ্যারে বাস্তবায়নে, আমরা উপরের এবং শেষ দুটি ভেরিয়েবল সহ n আকারের একটি অ্যারে সারি তৈরি করি।
এখন, প্রাথমিকভাবে, অ্যারেটি খালি অর্থাৎ শীর্ষ এবং শেষ উভয়ই অ্যারের 0 সূচকে রয়েছে। এবং উপাদানগুলিকে সারিতে যুক্ত করা হয় (সন্নিবেশ) শেষ ভেরিয়েবলের মান বৃদ্ধি করা হয়। শেষের মান n পর্যন্ত বাড়তে পারে অর্থাৎ একটি অ্যারের সর্বোচ্চ দৈর্ঘ্য।
যখন উপাদানগুলি সারি থেকে মুছে ফেলা হয় (মোছা) , শীর্ষ ভেরিয়েবলের মান বৃদ্ধি করা হয়। শীর্ষের মান শেষের মান পর্যন্ত যেতে পারে।
সারির অপারেশন বাস্তবায়ন
সারিবদ্ধ - এটি সারিতে উপাদান যোগ করার জন্য অপারেশন। সারিতে উপাদান যোগ করার আগে, আমরা সারিটি পূর্ণ কিনা তা পরীক্ষা করব। এটি পরীক্ষা করার শর্ত শেষ হয়, যদি এটি n-এর কম হয় তবে আমরা সারিতে [শেষ] উপাদানগুলি সংরক্ষণ করতে পারি। এবং 1 দ্বারা শেষ বাড়ান।
একটি ওভারফ্লো অবস্থা হল যখন অ্যারে পূর্ণ হয় অর্থাৎ শেষ ==n.
ডিকিউ - এটি সারির উপাদানগুলি মুছে ফেলার ক্রিয়াকলাপ। সারির উপাদানগুলি মুছে ফেলার আগে, আমরা সারিটি খালি কিনা তা পরীক্ষা করব। সারিটি খালি আছে কিনা তা পরীক্ষা করার শর্ত, শীর্ষ এবং শেষের মানগুলি পরীক্ষা করা হয়। যদি শীর্ষ ==অ্যারের চেয়ে শেষটি খালি থাকে।
যদি উপাদান থাকে তবে আমরা অ্যারেটি ডিকিউ করব। অ্যারের বাম দিকের সমস্ত উপাদানকে এক করে স্থানান্তর করে।
সামনে − সারির প্রথম উপাদান যেমন অ্যারে [শীর্ষ] বের করা। এই ক্রিয়াকলাপটি কেবল তখনই করা যেতে পারে যখন অ্যারে খালি না থাকে৷
৷প্রদর্শন - এই অপারেশনটি সারির সমস্ত উপাদান প্রদর্শন করে। অর্থাৎ সারি অতিক্রম করে।
অ্যালগরিদম
এনকিউ:ধাপ 1 :যদি (শেষ ==n), প্রিন্ট করুন:"ওভারফ্লো"। প্রস্থান ধাপ 2 :সারি [শেষ] =ডেটা এবং শেষ++ডিকিউ:ধাপ 1 :যদি (শীর্ষ ==0), প্রিন্ট করুন:"খালি সারি"। প্রস্থান ধাপ 2:সমস্ত উপাদান এক অবস্থান বামে স্থানান্তর করুন। শেষ--;
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;struct Queue { int top, end, n; int* সারি; সারি (int c){ শীর্ষ =শেষ =0; n =c; সারি =নতুন int; } ~সারি() { মুছে ফেলুন [] সারি;}অকার্যকর সারি (int data){ if (n ==end) { printf("\nসারি পূর্ণ\n"); প্রত্যাবর্তন } অন্য { সারি [শেষ] =ডেটা; শেষ++; } রিটার্ন;} void Dequeue(){ if (top ==end) { printf("\nসারি খালি\n"); প্রত্যাবর্তন } else { (int i =0; i আউটপুট
<প্রে>সারিটি খালি 12 <-- 89 <-- 65 <-- 34 <--সারিটি পূর্ণ 12 <-- 89 <-- 65 <-- 34 <-- 65 <-- 34 <--সামনের উপাদান হল :৬৫