//practical 5
//NAME:Aditya pawan kusumkar
//CLASS:CSE SY B
//ROLL NO.:CS2222
#include <stdio.h>
#include <stdbool.h>
#define MAX 5
int deque[MAX];
int front = -1, rear = -1;
bool isFull()
{
return ((front == 0 && rear == MAX - 1) || (front == rear + 1));
}
bool isEmpty()
{
return (front == -1);
}
void insertFront()
{
int x;
if (isFull())
{
printf("Deque is full!\n");
return;
}
printf("Enter Element: ");
scanf("%d", &x);
if (front == -1)
{
front = rear = 0;
}
else if (front == 0)
{
front = MAX - 1;
}
else
{
front--;
}
deque[front] = x;
}
void insertRear()
{
int x;
if (isFull())
{
printf("Deque is full!\n");
return;
}
printf("Enter Element: ");
scanf("%d", &x);
if (front == -1)
{
front = rear = 0;
}
else if (rear == MAX - 1)
{
rear = 0;
}
else
{
rear++;
}
deque[rear] = x;
}
void deleteFront()
{
if (isEmpty())
{
printf("Deque is empty!\n");
return;
}
printf("Deleted element from front: %d\n", deque[front]);
if (front == rear)
{
front = rear = -1;
}
else if (front == MAX - 1)
{
front = 0;
}
else
{
front++;
}
}
void deleteRear()
{
if (isEmpty())
{
printf("Deque is empty!\n");
return;
}
printf("Deleted element from rear: %d\n", deque[rear]);
if (front == rear)
{
front = rear = -1;
}
else if (rear == 0)
{
rear = MAX - 1;
}
else
{
rear--;
}
}
void display()
{
int i;
if (isEmpty())
{
printf("Deque is empty!\n");
return;
}
printf("Elements in deque are:\n");
i = front;
while (true)
{
printf("%d ", deque[i]);
if (i == rear)
break;
i = (i + 1) % MAX;
}
printf("\n");
}
int main()
{
int choice;
while (1)
{
printf("\n--- Circular Deque Menu ---\n");
printf("1. Insert Rear\n");
printf("2. Delete Rear\n");
printf("3. Insert Front\n");
printf("4. Delete Front\n");
printf("5. Display\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1:
insertRear();
break;
case 2:
deleteRear();
break;
case 3:
insertFront();
break;
case 4:
deleteFront();
break;
case 5:
display();
break;
case 6:
printf("Exiting...\n");
return 0;
default:
printf("Invalid choice!\n");
}
}
}