Abd
Abd
h>
#include <stdlib.h>
#define max 3
struct queue{
int arr[max];
int head;
int tail;
};
int initqueue(struct queue *q){
q->head=-1;
q->tail=-1;
}
int isfull(struct queue *q){
return q->tail==max-1;
}
int isempty(struct queue *q){
return q->head==-1;
}
void enqueue(struct queue *q,int value){
if (isfull(q)){
printf("Queue is full\n");
return -1;
}
else {
if (isempty(q)){
q->head=0;
}
q->arr[++q->tail]=value ;
printf("%d has been enqueued\n",value);
}
}
void dequeue(struct queue *q){
if (isempty(q)){
printf("queue is empty\n");
return -1;
}
else {
int value = q->arr[q->head++];
printf("%d hase been dequeued\n",value);
}
if (q->head > q->tail) {
q->head = q->tail = -1;
}
}
int main()
{
struct queue q;
int n;
initqueue(&q);
while (1){
printf("Please Enter the number:");
scanf("%d",&n);
if (n==0){
while (!isempty(&q)){
dequeue(&q);
}
break;
}
enqueue(&q,n);
}
return 0;
}