## Introduction

In computer science, a queue is a linear data structure that follows the First-In-First-Out (FIFO) principle. Queues are used to implement various algorithms such as breadth-first search, and scheduling. The two primary operations performed on a queue are enqueue and dequeue. This article discusses enqueue and dequeue operations in detail.

## What is Queue Data Structure?

A queue data structure is a linear data structure in computer science that follows the principle of first-in-first-out (FIFO). It is like a real-world queue where the first person is the first to be served. In a queue data structure, the elements are added at one end, known as the rear, and removed from the other end, known as the front. The rear end is also known as the tail, and the front end is known as the head. Queues are commonly used in computer algorithms, such as breadth-first search, and scheduling.

To learn more about queue data structure, you can refer to this [page](https://www.prepbytes.com/blog/queues/queue-data-structure/ “page”).

## What is Enqueue Operation in Queue?

Enqueue is an operation in a queue data structure that is used to add an element to the rear end of the queue. It is also known as “insert” or “push”. When a new element is added to the queue using the enqueue operation, it is added after the last element of the queue. The rear pointer is then moved one position forward to point to the new element. The enqueue operation follows the principle of first-in-first-out (FIFO), which means that the element added first will be the first one to be removed using the dequeue operation. The time complexity of the enqueue operation in a queue data structure is O(1) (constant time), as it only involves adding a new element to the rear end of the queue and updating the rear pointer.

##
What is Dequeue Operation in Queue?

Dequeue is an operation in a queue data structure that is used to remove an element from the front end of the queue. It is also known as “delete” or “pop”. When an element is removed from the queue using the dequeue operation, the first element of the queue is removed, and the front pointer is moved one position forward to point to the next element in the queue. The removed element is returned as the output of the dequeue operation. The dequeue operation follows the principle of first-in-first-out (FIFO), which means that the element that was added first will be the first one to be removed using the dequeue operation. If the queue is empty, the dequeue operation cannot be performed, and it is called an underflow condition. The time complexity of the dequeue operation in a queue data structure is O(1) (constant time), as it only involves removing the first element and moving the front pointer to the next element.

## Let Us Understand Enqueue and Dequeue With a Quick Example:

```
Print the queue each time an element is inserted and deleted.
If input is 1,2,3,4,5
Enqueue
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
Dequeue
2 3 4 5
3 4 5
4 5
5
```

## How To Implement Enqueue and Dequeue in C++ and C

- This is the basic implementation question of queues.
- It can be done using two queues(one to transfer the content of the original queue to get the front element everytime) or use an array and simple print the element at required index.
- You can do it either way.
- Refer to the C++ code for queues implementation and C for arrays.

## Code for Enqueue and Dequeue Operations

Below is the code implementation of Enqueue and Dequeue in C++, C, Java.

#includeint Queue[100]; int front=-1,rear=-1; void enqueue(int item,int N) { rear=(rear+1)%N; if(front==rear) { return; } else { Queue[rear]=item; if(front==-1) front=rear; } } void dequeue(int N) { int temp=Queue[front]; if(front==rear) front=rear=-1; front=(front+1)%N; return; } void printQueue() { int i=front; for(i;i<=rear;i++) { printf("%d ",Queue[i]); } } int main() { // write your code here int N; scanf("%d",&N); int item; for(int i=0;i

#includeusing namespace std; int main() { int n;cin>>n; vector v(n); for(int i=0;i >v[i]; queue q; for(int i=0;i temp; while(!q.empty()) { cout< temp; while(!q.empty()) { cout<

import java.util.*; import java.util.Scanner; public class HelloWorld{ public static void main(String []args){ Scanner myObj = new Scanner(System.in); int n = myObj.nextInt(); int a[] = new int[n]; for(int i=0;i

[forminator_quiz id="1843"]

## Conclusion

In conclusion, enqueue and dequeue are fundamental operations in the queue data structure that allow us to add and remove elements in a specific order. They are essential in many algorithms and applications where data needs to be processed in a sequential manner. Proper implementation of these operations ensures efficient use of memory and optimal performance. In this article, we discussed what enqueue and dequeue operations are in queue data structure and the implementation of enqueue and dequeue in C++, C, and Java language.

## FAQs

Here are some frequently asked questions on enqueue and dequeue operations.

**Q1: What is the input required for the enqueue operation in a queue data structure?

Ans:** The input required for the enqueue operation in a queue data structure is the element that needs to be added to the end of the queue.

**Q2: What happens if the queue is full during an enqueue operation?

Ans:** If the queue is full during an enqueue operation, it is called an overflow condition, and the operation cannot be performed.

**Q3: What happens if the queue is empty during a dequeue operation?

Ans:** If the queue is empty during a dequeue operation, it is called an underflow condition, and the operation cannot be performed.

**Q4: Can elements be inserted in the middle of a queue using enqueue operation?

Ans:** No, elements cannot be inserted in the middle of a queue using the enqueue operation. They can only be added to the end of the queue.

**Q5: What is the implementation of enqueue and dequeue in C language?

Answer:** In C language, enqueue and dequeue can be implemented using an array or a linked list data structure. For the array implementation, we can use the rear and front pointers to keep track of the positions of the last and first elements of the queue respectively. For the linked list implementation, we can use a structure to represent the nodes of the linked list and the rear and front pointers to keep track of the positions of the last and first nodes of the linked list respectively.

**Q6: Can elements be removed from the middle of a queue using a dequeue operation?

Ans:** No, elements cannot be removed from the middle of a queue using the dequeue operation. They can only be removed from the front end of the queue.

**Q7: What is the implementation of enqueue and dequeue in C++ language?

Ans:** In C++ language, enqueue and dequeue can be implemented using a queue class in the standard library. The queue class provides built-in functions for the enqueue and dequeue operations, such as push() and pop() respectively. The queue class can also be implemented using an array or a linked list data structure.