Add DS/C/Lab/Week4/circq.c
This commit is contained in:
parent
18c9a0ecff
commit
7ac01bf45d
63
DS/C/Lab/Week4/circq.c
Normal file
63
DS/C/Lab/Week4/circq.c
Normal file
@ -0,0 +1,63 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define MAX_SIZE 5
|
||||
|
||||
int queue[MAX_SIZE];
|
||||
int front = 0;
|
||||
int rear = 0;
|
||||
|
||||
void enqueue(int data) {
|
||||
if ((rear + 1) % MAX_SIZE == front) {
|
||||
printf("Queue is full\n");
|
||||
return;
|
||||
}
|
||||
queue[rear] = data;
|
||||
rear = (rear + 1) % MAX_SIZE;
|
||||
}
|
||||
|
||||
int dequeue() {
|
||||
if (front == rear) {
|
||||
printf("Queue is empty\n");
|
||||
return -1;
|
||||
}
|
||||
int data = queue[front];
|
||||
front = (front + 1) % MAX_SIZE;
|
||||
return data;
|
||||
}
|
||||
|
||||
void printQueue() {
|
||||
if (front == rear) {
|
||||
printf("Queue is empty\n");
|
||||
return;
|
||||
}
|
||||
int i = front;
|
||||
while (i != rear) {
|
||||
printf("%d ", queue[i]);
|
||||
i = (i + 1) % MAX_SIZE;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int main() {
|
||||
int choice, data;
|
||||
while (1) {
|
||||
printf("1. Enqueue\n2. Dequeue\n3. Print Queue\n4. Exit\n");
|
||||
scanf("%d", &choice);
|
||||
switch (choice) {
|
||||
case 1:
|
||||
printf("Enter data: ");
|
||||
scanf("%d", &data);
|
||||
enqueue(data);
|
||||
break;
|
||||
case 2:
|
||||
data = dequeue();
|
||||
if (data != -1) printf("Dequeued: %d\n", data);
|
||||
break;
|
||||
case 3:
|
||||
printQueue();
|
||||
break;
|
||||
case 4:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user