#include #include #define SIZE 5 int linearQueue[SIZE]; int linearFront = -1, linearRear = -1; int circularQueue[SIZE]; int circularFront = 0, circularRear = 0; void addLinear() { if (linearRear == SIZE - 1) { printf("\nLinear Queue is Full\n"); } else { int num; printf("\nEnter a number to add: "); scanf("%d", &num); if (linearFront == -1) { linearFront = 0; } linearRear++; linearQueue[linearRear] = num; printf("\n%d added to Linear Queue at position %d\n", num, linearRear); } } void deleteLinear() { if (linearFront == -1 || linearFront > linearRear) { printf("\nLinear Queue is Empty\n"); } else { int deletedItem = linearQueue[linearFront]; printf("\n%d deleted from Linear Queue from position %d\n", deletedItem, linearFront); linearFront++; } } void displayLinear() { if (linearFront == -1 || linearFront > linearRear) { printf("\nLinear Queue is Empty\n"); } else { printf("\nContents of Linear Queue:\n"); printf("Linear Queue: ["); for (int i = linearFront; i <= linearRear; i++) { printf("%d", linearQueue[i]); if (i < linearRear) { printf(", "); } } printf("]\n"); printf("linearFront: %d\n", linearFront); printf("linearRear: %d\n", linearRear); } } void addCircular() { if (((circularRear + 1) % SIZE) == circularFront) { printf("\nCircular Queue is Full\n"); } else { int num; printf("\nEnter a number to add: "); scanf("%d", &num); circularQueue[circularRear] = num; printf("\n%d added to Circular Queue at position %d\n", num, circularRear); circularRear = (circularRear + 1) % SIZE; } } void deleteCircular() { if (circularFront == circularRear) { printf("\nCircular Queue is Empty\n"); } else { int deletedItem = circularQueue[circularFront]; printf("\n%d deleted from Circular Queue from position %d\n", deletedItem, circularFront); circularFront = (circularFront + 1) % SIZE; } } void displayCircular() { if (circularFront == circularRear) { printf("\nCircular Queue is Empty\n"); } else { printf("\nContents of Circular Queue:\n"); printf("Circular Queue: ["); if (circularFront < circularRear) { for (int i = circularFront; i < circularRear; i++) { printf("%d", circularQueue[i]); if (i < circularRear - 1) { printf(", "); } } } else { for (int i = circularFront; i < SIZE; i++) { printf("%d", circularQueue[i]); if (i < SIZE - 1) { printf(", "); } } for (int i = 0; i < circularRear; i++) { printf("%d", circularQueue[i]); if (i < circularRear - 1) { printf(", "); } } } printf("]\n"); printf("circularFront: %d\n", circularFront); printf("circularRear: %d\n", (circularRear - 1 + SIZE) % SIZE); } } int main() { int choice, queueType; do { printf("\nMenu:\n"); printf("1. Linear Queue\n"); printf("2. Circular Queue\n"); printf("3. Exit\n"); printf("Choose queue type: "); scanf("%d", &queueType); if (queueType < 1 || queueType > 2) { break; } do { printf("\n1. Add Element\n"); printf("2. Delete Element\n"); printf("3. Display Queue\n"); printf("4. Back to Main Menu\n"); printf("Enter your choice: "); scanf("%d", &choice); switch (choice) { case 1: if (queueType == 1) { addLinear(); } else { addCircular(); } break; case 2: if (queueType == 1) { deleteLinear(); } else { deleteCircular(); } break; case 3: if (queueType == 1) { displayLinear(); } else { displayCircular(); } break; case 4: break; default: printf("Invalid Input\n"); } } while (choice != 4); } while (1); return 0; }