Double Ended Queue Through One Dimensional Array
Double Ended Queue Through One Dimensional Array
#define MAX 5
int deque[MAX];
int front = -1;
int rear = -1;
int isFull() {
return ((front == 0 && rear == MAX - 1) || (front == rear + 1));
}
int isEmpty() {
return (front == -1);
}
void insertFront(int key) {
if (isFull()) {
printf("Overflow: Unable to insert element at the front. Deque is full.\n");
return;
}
if (front == -1) {
front = 0;
1
Assignment No.7
rear = 0;
} else if (front == 0) {
front = MAX - 1;
} else {
front = front - 1;
}
deque[front] = key;
printf("Inserted %d at the front.\n", key);
}
void insertRear(int key) {
if (isFull()) {
printf("Overflow: Unable to insert element at the rear. Deque is full.\n");
return;
}
if (rear == -1) {
front = 0;
rear = 0;
} else if (rear == MAX - 1) {
rear = 0;
} else {
rear = rear + 1;
}
deque[rear] = key;
printf("Inserted %d at the rear.\n", key);
}
void deleteFront() {
if (isEmpty()) {
2
Assignment No.7
if (front == rear) {
front = -1;
rear = -1;
} else if (front == MAX - 1) {
front = 0;
} else {
front = front + 1;
}
if (front == rear) {
front = -1;
rear = -1;
} else if (rear == 0) {
rear = MAX - 1;
3
Assignment No.7
} else {
rear = rear - 1;
}
insertFront(15);
displayDeque();
insertRear(25);
4
Assignment No.7
displayDeque();
deleteFront();
displayDeque();
deleteRear();
displayDeque();
return 0;
}
OUTPUT –