ডাটা স্ট্রাকচার হল স্ট্রাকচার্ড পদ্ধতিতে সংগঠিত ডাটার সংগ্রহ। নীচে ব্যাখ্যা করা হিসাবে এটি দুটি প্রকারে বিভক্ত -
-
লিনিয়ার ডেটা স্ট্রাকচার - ডেটা একটি লিনিয়ার ফ্যাশনে সংগঠিত হয়। উদাহরণস্বরূপ, অ্যারে, স্ট্রাকচার, স্ট্যাক, সারি, লিঙ্ক করা তালিকা।
-
অরৈখিক ডেটা কাঠামো - ডেটা একটি ক্রমানুসারে সংগঠিত হয়। উদাহরণস্বরূপ, গাছ, গ্রাফ, সেট, টেবিল।
সারি
এটি একটি রৈখিক ডেটা স্ট্রাকচার, যেখানে সন্নিবেশটি পিছনের প্রান্তে করা হয় এবং সামনের প্রান্তে মুছে ফেলা হয়৷

সারির ক্রম হল FIFO – ফার্স্ট ইন ফার্স্ট আউট
অপারেশনস
- ঢোকান - একটি সারিতে একটি উপাদান সন্নিবেশ করান।
- মুছুন - সারি থেকে একটি উপাদান মুছে ফেলা।
শর্তগুলি
-
সারি ওভার প্রবাহ − একটি সম্পূর্ণ সারিতে একটি উপাদান সন্নিবেশ করার চেষ্টা করা হচ্ছে৷
-
প্রবাহের অধীনে সারি − একটি খালি সারি থেকে একটি উপাদান মুছে ফেলার চেষ্টা করা হচ্ছে৷
অ্যালগরিদম
নিচে সন্নিবেশ ( ) -
এর জন্য একটি অ্যালগরিদম দেওয়া হল- সারি ওভারফ্লো পরীক্ষা করুন।
if (r==n)
printf ("Queue overflow") - অন্যথায়, সারিতে একটি উপাদান প্রবেশ করান।
q[r] = item r++
নিচে মোছা ( ) এর জন্য একটি অ্যালগরিদম দেওয়া হল৷ −
- প্রবাহের অধীনে সারির জন্য পরীক্ষা করুন।
if (f==r)
printf ("Queue under flow") - অন্যথায়, সারি থেকে একটি উপাদান মুছে দিন।
item = q[f] f++
নিচে ডিসপ্লে ( ) এর জন্য একটি অ্যালগরিদম দেওয়া হল −
- সারিটি খালি আছে কি না তা পরীক্ষা করুন৷ ৷
if (f==r)
printf("Queue is empty") - অন্যথায়, 'f' থেকে 'r' পর্যন্ত সমস্ত উপাদান প্রিন্ট করুন।
for(i=f; i<r; i++)
printf ("%d", q[i]); প্রোগ্রাম
সারিতে থাকা একটি উপাদান মুছে ফেলার জন্য C প্রোগ্রাম −
নিচে দেওয়া হল#include <stdio.h>
#define MAX 50
void insert();
int array[MAX];
int rear = - 1;
int front = - 1;
main(){
int add_item;
int choice;
while (1){
printf("1.Insert element to queue \n");
printf("2.Delete an element from queue\n");
printf("3.Display elements of queue \n");
printf("4.Quit \n");
printf("Enter your choice : ");
scanf("%d", &choice);
switch (choice){
case 1:
insert();
break;
case 2:
delete();
case 3:
display();
break;
case 4:
exit(1);
default:
printf("Wrong choice \n");
}
}
}
void insert(){
int add_item;
if (rear == MAX - 1)
printf("Queue Overflow \n");
else{
if (front == - 1)
/*If queue is initially empty */
front = 0;
printf("Inset the element in queue : ");
scanf("%d", &add_item);
rear = rear + 1;
array[rear] = add_item;
}
}
void display(){
int i;
if (front == - 1)
printf("Queue is empty \n");
else{
printf("Queue is : \n");
for (i = front; i <= rear; i++)
printf("%d ", array[i]);
printf("\n");
}
}
void delete(){
if (front == - 1 || front > rear){
printf("Queue Underflow \n");
return ;
}
else{
printf("Element deleted from queue is : %d\n",array[front]);
front = front + 1;
}
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 12 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 23 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 2 Element deleted from queue is: 12 Queue is: 23 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 2 Element deleted from queue is: 23 Queue is: 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 4