Saturday, September 14, 2019

Queue implementation uisng linked list in python3

class Node:
        def __init__(self, value = None, pointer = None):
              self.value = value
              self.pointer = pointer
class LinkedQueue:
def __init__(self):
self.head = None
self.tail = None
def isEmpty(self):
return not bool(self.head)
def dequeue(self):
if self.head:
value = self.head.value
self.head = self.head.pointer
return value
def enqueue(self, value):
node = Node(value)
if not self.head:
self.head = node
self.tail = node
else:
if self.tail:
self.tail.pointer = node
self.tail = node
def size(self):
node = self.head
num_nodes = 0
while node:
num_nodes += 1
node = node.pointer
return num_nodes
def peek(self):
return self.head.value
def _print(self):
node = self.head
while node:
print(node.value,end=' ')
node = node.pointer
print()
if __name__ == '__main__':
queue = LinkedQueue()
print("Is the queue empty? ", queue.isEmpty())
print("Adding 1 to 10 in queue element ")
for i in range(1,11):
queue.enqueue(i)
print("Queue size : ", queue.size())
print("Queue front data : ", queue.peek())
print("Remove queue front element :", queue.dequeue())
print("Queue new front data : ", queue.peek())
print("Is the queue empty? ", queue.isEmpty())
print("Printing the queue element :",end=' ')
queue._print()
queue.enqueue(44)
queue.enqueue(99)
print("Printing the new queue element :",end=' ')
queue._print()
print("Queue size : ", queue.size())
print("Queue front data : ", queue.peek())

Queue implement using two stack in python3


Q.Implement queue using two Stack

class Queue: def
__init__(self):
self.in_stack = []
self.out_stack = []
def enqueue(self, data):
while self.out_stack:
self.in_stack.append(self.out_stack.pop())
self.in_stack.append(data)
while self.in_stack:
self.out_stack.append(self.in_stack.pop())
def dequeue(self):
if self.out_stack:
self.out_stack.pop()
def size(self):
return len(self.out_stack)
def frontData(self):
if self.out_stack:
return self.out_stack[-1]
def __repr__(self):
if self.out_stack:
return '{}'.format(self.out_stack)
def isEmpty(self):
return not (bool(self.out_stack))
if __name__ == '__main__':
queue = Queue()
print("Is the queue empty? ", queue.isEmpty())
print("Adding 1 to 10 in queue element ")
for i in range(1,11):
queue.enqueue(i)
print("Queue size : ", queue.size())
print("Queue front data : ", queue.frontData())
print("Remove queue front element ")
queue.dequeue()
print("Queue new front data : ", queue.frontData())
print("Is the queue empty? ", queue.isEmpty())
print("Printing the queue element : ")
print(queue)
queue.enqueue(44)
queue.enqueue(99)
print("Printing the new queue element : ")
print(queue)
print("Queue size : ", queue.size())
print("Queue front data : ", queue.frontData())