Learn Programming and technology with ease @ developerpublish.com

HomePythonPython Program to Implement Stack using Queue

# Python Program to Implement Stack using Queue

In this Python program, weâ€™ll be implementing a stack using two queues. The stack data structure follows the Last-In-First-Out (LIFO) principle, while queues follow the First-In-First-Out (FIFO) principle. By using two queues cleverly, we can mimic the behavior of a stack.

## Problem Statement

Implement a stack data structure using two queues (`queue1` and `queue2`) and provide methods to `push`, `pop`, and check if the stack is empty (`is_empty`).

## Python Program to Implement Stack using Queue

```class StackUsingQueue:
def __init__(self):
self.queue1 = []
self.queue2 = []

def push(self, value):
self.queue1.append(value)

def pop(self):
if not self.queue1:
return None

while len(self.queue1) > 1:
self.queue2.append(self.queue1.pop(0))

popped_value = self.queue1.pop(0)

self.queue1, self.queue2 = self.queue2, self.queue1

return popped_value

def is_empty(self):
return len(self.queue1) == 0

# Create a stack instance
stack = StackUsingQueue()

# Push elements onto the stack
stack.push(10)
stack.push(20)
stack.push(30)

# Pop elements from the stack
print(stack.pop())  # Output: 30
print(stack.pop())  # Output: 20

# Check if the stack is empty
print(stack.is_empty())  # Output: False

print(stack.pop())  # Output: 10
print(stack.is_empty())  # Output: True
```

## How It Works

• We use two queues, `queue1` and `queue2`, to simulate the stack behavior.
• The `push` operation is straightforward and is performed on `queue1`.
• The `pop` operation is implemented by transferring all elements except the last one from `queue1` to `queue2`. The last element is then popped from `queue1`, effectively mimicking the behavior of a stackâ€™s `pop` operation.
• The `is_empty` method simply checks if `queue1` is empty.

## Input/Output

### You May Also Like

#### Python Program to Remove Duplicates from a Linked List

In this Python program, we will create a singly linked list and remove duplicate elements from it. A linked list...

#### Python Program to Solve the Celebrity Problem

This Python program solves the Celebrity Problem by finding a person who is known by everyone but does not know...

#### Python Program to Solve n-Queen Problem with Recursion

This Python program uses a recursive approach to solve the n-Queens problem. It explores all possible combinations of queen placements...