डेटा संरचना संरचित तरीके से व्यवस्थित डेटा का संग्रह है। इसे नीचे बताए अनुसार दो प्रकारों में बांटा गया है -
-
रैखिक डेटा संरचना - डेटा को एक रेखीय तरीके से व्यवस्थित किया जाता है। उदाहरण के लिए, सरणियाँ, संरचनाएँ, ढेर, कतारें, लिंक्ड सूचियाँ।
-
गैर-रेखीय डेटा संरचना - डेटा को एक श्रेणीबद्ध तरीके से व्यवस्थित किया जाता है। उदाहरण के लिए, पेड़, ग्राफ, सेट, टेबल।
कतार
यह एक रेखीय डेटा संरचना है, जहां सम्मिलन पीछे के छोर पर किया जाता है और विलोपन सामने के छोर पर किया जाता है।
कतार का क्रम है फीफो - फर्स्ट इन फर्स्ट आउट
ऑपरेशन
- सम्मिलित करें - एक कतार में एक तत्व सम्मिलित करना।
- हटाएं - कतार से किसी तत्व को हटाना।
शर्तें
-
क्यू ओवर फ्लो - एक एलिमेंट को पूरी क्यू में डालने की कोशिश कर रहा है।
-
प्रवाह के तहत कतार - एक खाली कतार से एक तत्व को हटाने की कोशिश कर रहा है।
एल्गोरिदम
सम्मिलन के लिए एक एल्गोरिथम नीचे दिया गया है ( ) -
- कतार ओवरफ्लो की जांच करें।
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]);
कार्यक्रम
कतार में एक तत्व को हटाने के लिए सी कार्यक्रम निम्नलिखित है -
#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