# What Is Queue Data Structure in Python?

//

Angela Bailey

A queue is a data structure in Python that follows the FIFO (First-In-First-Out) principle. It is similar to a queue of people waiting in line for something, where the person who arrives first gets served first.

## Understanding Queue Data Structure

In Python, a queue can be implemented using a list. However, using the built-in list is not efficient for enqueueing and dequeueing operations as it requires shifting all elements after enqueue or dequeue operation.

To overcome this inefficiency, Python provides a specialized data structure called the deque. The deque stands for “double-ended queue” and provides efficient enqueue and dequeue operations.

## Creating a Queue in Python:

To create a queue in Python, we need to import the collections module and initialize an empty deque:

```from collections import deque

queue = deque()
```

## Enqueueing Elements to the Queue:

To add elements to the queue, we can use the append() method of the deque. It appends elements at the right end of the deque:

```queue.append(element)
```

We can enqueue multiple elements by calling append() multiple times:

```queue.append(element1)
queue.append(element2)
queue.append(element3)
..
```

## Dequeueing Elements from the Queue:

To remove elements from the queue, we can use the popleft() method of the deque. It removes and returns the leftmost element of the deque:

```element = queue.popleft()
```

We can dequeue multiple elements by calling popleft() multiple times:

```element1 = queue.popleft()
element2 = queue.popleft()
element3 = queue.popleft()
.
```

## Checking if the Queue is Empty:

To check if the queue is empty, we can use the len() function or check if it evaluates to False:

```if len(queue) == 0:
print("Queue is empty")

if not queue:
print("Queue is empty")
```

## Peeking at the Front of the Queue:

To get the element at the front of the queue without removing it, we can use indexing. The element at index 0 represents the front of the queue:

```front_element = queue[0]
```

## Example: Implementing a Queue in Python:

Let’s see an example that demonstrates how to implement a basic queue in Python using deque:

```from collections import deque

queue = deque()

queue.append(10)
queue.append(20)
queue.append(30)

print(queue.popleft())  # Output: 10
print(queue)            # Output: deque([20, 30])
```

### In this example, we create a queue and add elements 10, 20, and 30. After that, we dequeue an element and print it. Finally, we print the remaining elements in the queue.

That’s it! Now you have a good understanding of the queue data structure in Python and how to implement it using deque.

Queues are widely used in various computer science applications, such as scheduling processes, handling network packets, and implementing breadth-first search algorithms.

Remember to choose the appropriate data structure based on your requirements to optimize performance and efficiency.

Happy coding!