0% found this document useful (0 votes)
10 views

Doubly Ended

Uploaded by

Ashwin Harikumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Doubly Ended

Uploaded by

Ashwin Harikumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

PROGRAM: DOUBLY ENDED QUEUE USING ARRAY

#include <stdio.h>
#define MAX 4
int deque[MAX];
int front = -1;
int rear = -1;
int ch = 0, n = 0;
void enque_front(int n);
void enque_rear(int n);
void deque_front();
void deque_rear();
void display();
void main()
{
while (ch != 6)
{
printf("\n1. Enqueue Front\n2. Enqueue Rear\n3. Dequeue Front\n4. Dequeue Rear\n5.
Display\n6.Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch)
{
case 1:
printf("Enter the element to push at front: ");
scanf("%d", &n);
enque_front(n);
break;
case 2:
printf("Enter the element to push at rear: ");
scanf("%d", &n);
enque_rear(n);
break;
case 3:
deque_front();
break;
case 4:
deque_rear();
break;
case 5:
display();
break;
case 6:
printf("Exiting\n");
break;
default:
printf("Invalid choice\n");
}}}
void enque_front(int item)
{if ((front == 0 && rear == MAX - 1) || (front == rear + 1))
{
printf("Overflow\n");
}
else
{
if (front == -1)
{
front = rear = 0;
}
else if (front == 0)
{
front = MAX - 1;
}
else
{
front--;
}
deque[front] = item;
printf("Inserted %d at front\n", item);
}}
void enque_rear(int item)
{
if ((front == 0 && rear == MAX - 1) || (front == rear + 1))
{
printf("Overflow\n");
}
else
{
if (front == -1)
{
front = rear = 0;
}
else if (rear == MAX - 1)
{
rear = 0;
}
else
{
rear++;
}
deque[rear] = item;
printf("Inserted %d at rear\n", item);
}}
void deque_front()
{
if (front == -1)
{
printf("Underflow\n");}
else
{
printf("Removed %d from front\n", deque[front]);
if (front == rear)
{
front = rear = -1;
}
else
{
if (front == MAX - 1)
{
front = 0;
}
else
{
front++;
}}}}
void deque_rear()
{
if (rear == -1)
{
printf("Underflow\n");
}
else
{
printf("Removed %d from rear\n", deque[rear]);
if (front == rear)
{
front = rear = -1;
}
else if (rear == 0)
{
rear = MAX - 1;
}
else
{
rear--;
}}}
void display()
{
if (front == -1)
{
printf("Deque is empty\n");
}
else{
printf("Deque elements are: ");
int i = front;
while (1)
{
printf("%d ", deque[i]);
if (i == rear)
break;
i = (i + 1) % MAX;
}
printf("\n");
}}
OUTPUT
ubuntu@ubuntu-H81M-S:~/AshwinHarikumar-10$ ./a.out
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 1
Enter the element to push at front: 56
Inserted 56 at front
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 2
Enter the element to push at rear: 89
Inserted 89 at rear
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 2
Enter the element to push at rear: 99
Inserted 99 at rear
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 1
Enter the element to push at front: 55
Inserted 55 at front
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 1
Enter the element to push at front: 23 Overflow
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 5
Deque elements are: 55 56 89 99
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 4 Removed 99 from rear
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 5
Deque elements are: 55 56 89
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 3 Removed 55 from front
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 5 Deque elements are: 56 89
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 4 Removed 89 from rear
1. Enqueue Front
2. Enqueue Rear
3. Dequeue Front
4. Dequeue Rear
5. Display
6. Exit
Enter your choice: 6
Exiting

You might also like