डेटा स्ट्रक्चर संरचित तरीके से व्यवस्थित डेटा का संग्रह है। इसे दो प्रकारों में विभाजित किया गया है:
- लीनियर डेटा स्ट्रक्चर - डेटा लीनियर फैशन में व्यवस्थित है। उदाहरण: ऐरे, स्ट्रक्चर्स, स्टैक्स, क्यूज, लिंक्ड लिस्ट।
- नॉन-लीनियर डेटा स्ट्रक्चर - डेटा हायरार्किकल तरीके से व्यवस्थित है। उदाहरण: ट्रीज, ग्राफ्स, सेट्स, टेबल्स।
क्यू
यह एक लीनियर डेटा स्ट्रक्चर है, जहां इन्सर्शन रियर एंड पर किया जाता है और डिलीशन फ्रंट एंड पर किया जाता है।
क्यू का क्रम 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. क्यू में एलिमेंट इन्सर्ट करें \n");
printf("2. क्यू से एलिमेंट डिलीट करें\n");
printf("3. क्यू के एलिमेंट्स डिस्प्ले करें \n");
printf("4. छोड़ें \n");
printf("अपना विकल्प दर्ज करें: ");
scanf("%d", &choice);
switch (choice) {
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
display();
break;
case 4:
exit(1);
default:
printf("गलत विकल्प \n");
}
}
}
void insert() {
int add_item;
if (rear == MAX - 1)
printf("Queue Overflow \n");
else {
if (front == -1)
/* यदि क्यू प्रारंभ में खाली है */
front = 0;
printf("क्यू में एलिमेंट इन्सर्ट करें: ");
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 है: \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("क्यू से डिलीट किया गया एलिमेंट है: %d\n", array[front]);
front = front + 1;
}
}
आउटपुट
1. क्यू में एलिमेंट इन्सर्ट करें 2. क्यू से एलिमेंट डिलीट करें 3. क्यू के एलिमेंट्स डिस्प्ले करें 4. छोड़ें अपना विकल्प दर्ज करें: 1 क्यू में एलिमेंट इन्सर्ट करें: 12 1. क्यू में एलिमेंट इन्सर्ट करें 2. क्यू से एलिमेंट डिलीट करें 3. क्यू के एलिमेंट्स डिस्प्ले करें 4. छोड़ें अपना विकल्प दर्ज करें: 1 क्यू में एलिमेंट इन्सर्ट करें: 23 1. क्यू में एलिमेंट इन्सर्ट करें 2. क्यू से एलिमेंट डिलीट करें 3. क्यू के एलिमेंट्स डिस्प्ले करें 4. छोड़ें अपना विकल्प दर्ज करें: 1 क्यू में एलिमेंट इन्सर्ट करें: 34 1. क्यू में एलिमेंट इन्सर्ट करें 2. क्यू से एलिमेंट डिलीट करें 3. क्यू के एलिमेंट्स डिस्प्ले करें 4. छोड़ें अपना विकल्प दर्ज करें: 2 क्यू से डिलीट किया गया एलिमेंट है: 12 Queue है: 23 34 1. क्यू में एलिमेंट इन्सर्ट करें 2. क्यू से एलिमेंट डिलीट करें 3. क्यू के एलिमेंट्स डिस्प्ले करें 4. छोड़ें अपना विकल्प दर्ज करें: 2 क्यू से डिलीट किया गया एलिमेंट है: 23 Queue है: 34 1. क्यू में एलिमेंट इन्सर्ट करें 2. क्यू से एलिमेंट डिलीट करें 3. क्यू के एलिमेंट्स डिस्प्ले करें 4. छोड़ें अपना विकल्प दर्ज करें: 4