Garv Dsa
Garv Dsa
Section : G2
Roll no : 04
*/
#include <stdio.h>
#define MAX_SIZE 10
int queue[MAX_SIZE];
int front = 0;
int rear = 0;
int size = 0;
void createQueue() {
void enQueue(int k) {
if (size == MAX_SIZE) {
printf("Queue is full!\n");
} else {
queue[rear] = k;
rear = (rear + 1) % MAX_SIZE;
size++;
int deQueue() {
if (size == 0) {
printf("Queue is empty!\n");
return -1;
} else {
queue[front] = 0;
size--;
return temp;
int isEmpty() {
return size == 0;
int getSize() {
return size;
void display() {
printf("Queue elements: ");
printf("\n");
int main() {
createQueue();
int choice,k;
do{
printf("\n1. To enqueue\n");
printf("2. To dequeue\n");
printf("6. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
scanf("%d", &k);
enQueue(k);
display();
break;
case 2:
deQueue();
display();
break;
case 3:
if (isEmpty()) {
printf("Queue is empty!\n");
} else {
break;
case 4:
break;
case 5:
display();
break;
case 6:
return 0;
default:
printf("Invalid choice!\n");
}while(choice!=6);
return 0;
path:
PS C:\Users\dell\code in vs\.vscode\DSA with c\QUEUE>
Output :
1. To enqueue
2. To dequeue
6. Exit
Queue elements: 34
1. To enqueue
2. To dequeue
6. Exit
Queue elements: 34 42
1. To enqueue
2. To dequeue
6. Exit
Queue elements: 34 42 6
1. To enqueue
2. To dequeue
6. Exit
1. To enqueue
2. To dequeue
6. Exit
Section : G2
Roll no : 04
*/
#include <stdio.h>
#define MAX_SIZE 10
int queue[MAX_SIZE];
int front = 0;
int rear = 0;
int size = 0;
if (size == MAX_SIZE) {
printf("Queue is full!\n");
} else {
queue[rear] = data;
size++;
int dequeue() {
if (size == 0) {
printf("Queue is empty!\n");
return -1;
} else {
queue[front] = 0;
size--;
return data;
void reverseQueue() {
int stack[MAX_SIZE];
stack[++top] = dequeue();
enqueue(stack[top--]);
void printQueue() {
tempSize--;
}
printf("\n");
reverseQueue();
tempFront = front;
tempSize = size;
tempSize--;
printf("\n");
int main() {
do {
scanf("%d", &choice);
if (choice == 1) {
scanf("%d", &data);
enqueue(data);
} else if (choice != 2) {
printf("Invalid choice!\n");
printQueue();
return 0;
path:
PS C:\Users\dell\code in vs\.vscode\DSA with c\QUEUE>
OUTPUT:
Press:
1 to insert
2 to exit
Press:
1 to insert
2 to exit
Press:
1 to insert
2 to exit
Press:
1 to insert
2 to exit
Press:
1 to insert
2 to exit
1 to insert
2 to exit
1
2 to exit
Press:
1 to insert
Press:
1 to insert
1 to insert
2 to exit
/*15 Design an algorithm and write a program to implement Deque i.e. double ended queue. Double
ended queue is a queue in which insertion and deletion can be done from both ends of the queue.
Section : G2
Roll no : 04
*/
#include<stdio.h>
if (isFull()) {
printf("Deque is full!\n");
} else {
if (isEmpty()) {
front = rear = 0;
} else if (front == 0) {
front = MAX_SIZE - 1;
} else {
front--;
}
deque[front] = data;
size++;
if (isFull()) {
printf("Deque is full!\n");
} else {
if (isEmpty()) {
front = rear = 0;
rear = 0;
} else {
rear++;
deque[rear] = data;
size++;
void deleteFront() {
if (isEmpty()) {
printf("Deque is empty!\n");
} else {
if (front == rear) {
} else {
front++;
size--;
void deleteEnd() {
if (isEmpty()) {
printf("Deque is empty!\n");
} else {
if (front == rear) {
} else if (rear == 0) {
rear = MAX_SIZE - 1;
} else {
rear--;
size--;
int isEmpty() {
return size == 0;
int isFull() {
return size == MAX_SIZE;
void printFront() {
if (isEmpty()) {
printf("Deque is empty!\n");
} else {
tempSize--;
printf("\n");
void printEnd() {
if (isEmpty()) {
printf("Deque is empty!\n");
} else {
if (tempRear == 0) {
tempRear = MAX_SIZE - 1;
} else {
tempRear--;
tempSize--;
printf("\n");
int main() {
do {
printf("Press:\n1 to insert at front\n2 to insert at end\n3 to delete from front\n4 to delete from
end\n5 to exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
scanf("%d", &data);
insertFront(data);
printFront();
printEnd();
break;
case 2:
scanf("%d", &data);
insertEnd(data);
printFront();
printEnd();
break;
case 3:
deleteFront();
printFront();
printEnd();
break;
case 4:
deleteEnd();
printFront();
printEnd();
break;
case 5:
break;
default:
printf("Invalid choice!\n");
return 0;
path:
OUTPUT:
Press:
1 to insert at front
2 to insert at end
Press:
1 to insert at front
2 to insert at end
5 to exit
Press:
1 to insert at front
2 to insert at end
5 to exit
Press:
1 to insert at front
2 to insert at end
5 to exit
Press:
1 to insert at front
2 to insert at end
5 to exit