queue ko arrey ki tarah implement kaise kare , Queues : Implementation As Array in c language in hindi :-
Stack और Queues एक linear struture जो की एक particular order को फॉलो करता है |इस order को FIFO कहते है |Queues का एक्सम्प्ले है किसी ticket के लिए लगी line |इस line मे जो लोग पहले आते है उसे ticket पहले मिलती है |stack और Queues मे केवल एक difference होता है की stack मे recently add element डिलीट होता है लेकिन Queues मे जो element पहले आता है वो डिलीट होता है |
Queues के operation
1.EnQueues
इस operation मे Queues मे data को add किया जाता है |अगर Queues full होते है तब overfull condition आ जाती है |
2.DeQueues
इस operation मे ,Queues से data को डिलीट किया जाता है |जिस order मे data enter होता है उसी order मे data डिलीट होता है |
3. Front
इस operation मे , Queues के front position पर स्थित element को return किया जाता है |
4.Rear
इस operation मे , Queues के rear position पर स्थित element को return किया जाता है |
Queues के Application
Queues का इस्तेमाल उस condition मे किया जाता है जहा पर प्रोसेस को immediately नहीं करना होता है |सबसे famous application होता है breadth first serach |Queues का property के कारन ,Queues को कई condition मे use कर सकते है |
1.जब किसी एक resource ( keyboard ,printer ,mouse ) आदि को बहुत operation मे shared होताहै |जैसे डिस्क scheduling ,disk scheduling |
2.जब किसी data को asynchronously transfer होता है |इसका मतलब है जब data को input फॉर्म मे त्रंफेर करना complusly नहीं होती है |जैसे buffers , pipes , file IO आदि
Queues का array implementation
Souce Code
#include <stdio.h>
#define size 50
int array[size];
int rear = – 1;
int front = – 1;
main()
{
char ch;
while (1)
{
printf(“‘I’.Insert element to queue \n”);
printf(” ‘D’.Delete element from queue \n”);
printf(” “V’.View all elements of queue \n”);
printf(” ‘Q’.Quit \n”);
printf(“Enter your ch : “);
scanf(“%c”, &ch);
switch (ch)
{
case I:
insertinqueue();
break;
case D:
deleteinqueue();
break;
case V
viewqueue();
break;
case Q:
exit(1);
default:
printf(“Wrong ch \n”);
}
}
}
insertinqueue()
{
int new_item;
if (rear == size – 1)
printf(“Queue Overflow \n”);
else
{
if (front == – 1)
front = 0;
printf(“Enter new element : “);
scanf(“%d”, &new_item);
rear = rear + 1;
array[rear] = new_item;
}
}
deleteinqueue()
{
if (front == – 1 || front > rear)
{
printf(“Queue Underflow \n”);
return ;
}
else
{
printf(” Delete element : %d\n”, array[front]);
front = front + 1;
}
}
display()
{
int i;
if (front == – 1)
printf(” Empty Queues \n”);
else
{
printf(“Queue is : \n”);
for (i = front; i <= rear; i++)
printf(“%d “, array[i]);
printf(“\n”);
}
}
Explantion
इस प्रोग्राम चार function है :-
1.main() : इस function मे यूजर द्वारा perform function के लिए choice को input करते है |इसके लिए
I for insert के लिए
D for डिलीट के लिए
V for view के लिए
E for exit operation के लिए
इसके अलावा तीन यूजर define function को declare किया जाता है :-
1.deleteinqueue() : इस function का use ,queue मे से data को डिलीट करने के लिए किया जाता है |
2.viewqueue() : इस function का use ,queue के सभी element को display करने के लिए किया जाता है |
3.insertinqueue() : इस function का use ,queue मे data को insert करने के लिए किया जाता है |
insertinqueue() मे ,
1.सबसे पहले एक नए variable को declare किया गया है जो की new element को hold करता है जिसे insert करना है |
2.फिर condition को check किया जाता है |
3.अगर rear की value , size-1 बके सामान होती है तब
3.i-overfull की condition आ जाती है |
3.ii- अब rear की rear+1 से set हो जाता है |और array की rear position पर new_data की value assign हो जाती है |
deleteinqueue()
1.सबसे पहले condition को check की जाती है |
2.अगर front की value ‘-1’ से check होती है और front की value को rear से check होती है |दोनों compression मे and operation होता है |
3.अगर front की value ‘-1’ है या front की value, rear की value से बड़ी होती है तब
3.i-underflow की condition आ जाती है |
3.ii- डिलीट element print होता है और front ,front-1 से रिसेट हो जाता है |
display()
1.सबसे पहले condition को check किया जाता है |
2.front ‘-1’ है तब
2.i-queue empty का message हो जाता है |
2.ii-अन्यथा ,queue के element को display किया जाता ही |queue के element को display करने का logic array के element को display की तरह है |
इसमें loop चलाया जाता है |और एक एक करके सभी element को print किया जाता है |