Quick actions

cmd+k|ctrl+k

Navigation

Languages

Data Structures: Queue With Stacks

Snippet info

Language

Python

Visibility

public

Author

rakeshbhatia87

Created

2023-01-04T07:13:50.555415Z

Updated

2023-01-04T07:15:01.801641Z

class Queue:
    def __init__(self):
        self.first = []
        self.last = []
        
    def peek(self):
        if len(self.first) == 0:
            print("Queue empty")
            return
        return self.first[-1]

    def enqueue(self, value):
        # Add all values from first stack to last stack
        length = len(self.first)
        for i in range(length):
            self.last.append(self.first.pop())
        # First stack is now empty
        # Add given value to first stack
        self.first.append(value)
        # Now add all values from last stack to first stack
        length = len(self.last)
        for i in range(length):
            self.first.append(self.last.pop())

    def dequeue(self):
        if len(self.first) == 0:
            print("Queue empty")
            return
        return self.first.pop()

    def print_queue(self):
        if len(self.first) == 0:
            print("Queue Empty")
            return
        for i in range(len(self.first) - 1,0,-1):
            print(f'{self.first[i]} <<-- ',end='')
        print(self.first[0])
        return

myQueue = Queue()
myQueue.enqueue("John")
myQueue.enqueue("Jacob")
myQueue.enqueue("Justin")
myQueue.print_queue()
#print(myQueue.peek())
myQueue.dequeue()
myQueue.print_queue()
#print(myQueue.peek())
myQueue.dequeue()
myQueue.print_queue()
myQueue.dequeue()
myQueue.print_queue()
#print(myQueue.peek())

INFO