Stack and Queue in Python using queue Module Last Updated : 01 Aug, 2022 Comments Improve Suggest changes Like Article Like Report A simple python List can act as queue and stack as well. Queue mechanism is used widely and for many purposes in daily life. A queue follows FIFO rule(First In First Out) and is used in programming for sorting and for many more things. Python provides Class queue as a module which has to be generally created in languages such as C/C++ and Java. 1. Creating a FIFO Queue // Initialize queue Syntax: queue.Queue(maxsize) // Insert Element Syntax: Queue.put(data) // Get And remove the element Syntax: Queue.get() Initializes a variable to a maximum size of maxsize. A maxsize of zero '0' means a infinite queue. This Queue follows FIFO rule. This module also has a LIFO Queue, which is basically a Stack. Data is inserted into Queue using put() and the end. get() takes data out from the front of the Queue. Note that Both put() and get() take 2 more parameters, optional flags, block and timeout. Implementation: python3 import queue # From class queue, Queue is # created as an object Now L # is Queue of a maximum # capacity of 20 L = queue.Queue(maxsize=20) # Data is inserted into Queue # using put() Data is inserted # at the end L.put(5) L.put(9) L.put(1) L.put(7) # get() takes data out from # the Queue from the head # of the Queue print(L.get()) print(L.get()) print(L.get()) print(L.get()) Output5 9 1 7 2. UnderFlow and OverFlow When we try to add data into a Queue above is maxsize, it is called OverFlow(Queue Full) and when we try removing an element from an empty, it's called Underflow. put() and get() do not give error upon Underflow and Overflow, but goes into an infinite loop. Implementation: python3 import queue L = queue.Queue(maxsize=6) # qsize() give the maxsize # of the Queue print(L.qsize()) L.put(5) L.put(9) L.put(1) L.put(7) # Return Boolean for Full # Queue print("Full: ", L.full()) L.put(9) L.put(10) print("Full: ", L.full()) print(L.get()) print(L.get()) print(L.get()) # Return Boolean for Empty # Queue print("Empty: ", L.empty()) print(L.get()) print(L.get()) print(L.get()) print("Empty: ", L.empty()) print("Full: ", L.full()) # This would result into Infinite # Loop as the Queue is empty. # print(L.get()) Output0 Full: False Full: True 5 9 1 Empty: False 7 9 10 Empty: True Full: False 3. Stack This module queue also provides LIFO Queue which technically works as a Stack. Implementation: python3 import queue L = queue.LifoQueue(maxsize=6) # qsize() give the maxsize of # the Queue print(L.qsize()) # Data Inserted as 5->9->1->7, # same as Queue L.put(5) L.put(9) L.put(1) L.put(7) L.put(9) L.put(10) print("Full: ", L.full()) print("Size: ", L.qsize()) # Data will be accessed in the # reverse order Reverse of that # of Queue print(L.get()) print(L.get()) print(L.get()) print(L.get()) print(L.get()) print("Empty: ", L.empty()) Output0 Full: True Size: 6 10 9 7 1 9 Empty: False Comment More infoAdvertise with us Next Article Stack and Queue in Python using queue Module piyushdoorwar Follow Improve Article Tags : Stack Queue Python DSA Python-DSA +1 More Practice Tags : pythonQueueStack Similar Reads Priority Queue using Queue and Heapdict module in Python Priority Queue is an extension of the queue with the following properties. An element with high priority is dequeued before an element with low priority. If two elements have the same priority, they are served according to their order in the queue. queue.PriorityQueue(maxsize) It is a constructor fo 3 min read Implement Stack and Queue using Deque Deque also known as double ended queue, as name suggests is a special kind of queue in which insertions and deletions can be done at the last as well as at the beginning. A link-list representation of deque is such that each node points to the next node as well as the previous node. So that insertio 15 min read Stack and Queues in Python Prerequisites : list and Deque in Python. Unlike C++ STL and Java Collections, Python does have specific classes/interfaces for Stack and Queue. Following are different ways to implement in Python 1) Using list Stack works on the principle of "Last-in, first-out". Also, the inbuilt functions in Pyth 3 min read Implement a stack using single queue We are given a queue data structure, the task is to implement a stack using a single queue.Also Read: Stack using two queuesThe idea is to keep the newly inserted element always at the front of the queue, preserving the order of previous elements by appending the new element at the back and rotating 5 min read Heap and Priority Queue using heapq module in Python Heaps are widely used tree-like data structures in which the parent nodes satisfy any one of the criteria given below. The value of the parent node in each level is less than or equal to its children's values - min-heap.The value of the parent node in each level higher than or equal to its children' 5 min read Implement Stack using Queues Implement a stack using queues. The stack should support the following operations:Push(x): Push an element onto the stack.Pop(): Pop the element from the top of the stack and return it.A Stack can be implemented using two queues. Let Stack to be implemented be 's' and queues used to implement are 'q 15+ min read Reversing a Queue using another Queue Given a queue. The task is to reverse the queue using another empty queue. Examples: Input: queue[] = {1, 2, 3, 4, 5} Output: 5 4 3 2 1 Input: queue[] = {10, 20, 30, 40} Output: 40 30 20 10 Approach: Given a queue and an empty queue.The last element of the queue should be the first element of the ne 5 min read Python | Queue using Doubly Linked List A Queue is a collection of objects that are inserted and removed using First in First out Principle(FIFO). Insertion is done at the back(Rear) of the Queue and elements are accessed and deleted from first(Front) location in the queue. Queue Operations:1. enqueue() : Adds element to the back of Queue 3 min read Check if a queue can be sorted into another queue using a stack Given a Queue consisting of first n natural numbers (in random order). The task is to check whether the given Queue elements can be arranged in increasing order in another Queue using a stack. The operation allowed are: Push and pop elements from the stack Pop (Or Dequeue) from the given Queue. Push 9 min read Python | Stack using Doubly Linked List A stack is a collection of objects that are inserted and removed using Last in First out Principle(LIFO). User can insert elements into the stack, and can only access or remove the recently inserted object on top of the stack. The main advantage of using LinkedList over array for implementing stack 4 min read Like