User Tools

Site Tools


python:py_lists:py_code:queues

Queues Algorithms

Creating a Queue by Queue Class Algorithm
class Node:
    def __init__(self, data, next=None):
        self.data = data
        self.next = next
 
 
class Queue:
    def __init__(self):
        self.front = None
        self.rear = None
        self._size = 0
 
    def enqueue(self, item):
        self._size += 1
        node = Node(item)
        if self.rear is None:
            self.front = node
            self.rear = node
        else:
            self.rear.next = node
            self.rear = node
 
    def dequeue(self):
        if self.front is None:
            raise IndexError('pop from empty queue')
        self._size −= 1
        temp = self.front
        self.front = self.front.next
        if self.front is None:
            self.rear = None
        return temp.data
    
    def size(self):
        return self._size
Python's Built-In Queue Class Algorithm
from queue import Queue
 
q = Queue()
q.put('a')
q.put('b')
q.put('c')
print(q.qsize())
for i in range(3):
   print(q.get())
Create a Queue from two Stacks Algorithm
class Queue:
    def __init__(self):
        self.s1 = []
        self.s2 = []
 
    def enqueue(self, item):
        while len(self.s1) != 0:
            self.s2.append(self.s1.pop())
        self.s1.append(item)
        while len(self.s2) != 0:
            self.s1.append(self.s2.pop())
 
    def dequeue(self):
        if len(self.s1) == 0:
            raise Exception("Cannot pop from empty queue")
        return self.s1.pop()
XX Queues Algorithm

XX Queues Algorithm

XX Queues Algorithm

python/py_lists/py_code/queues.txt · Last modified: by adminguide