class Queue: def __init__(self, max_size = 0): | |
self.size = max_size | |
self.arr = [] | |
def enqueue(self, data): | |
if not self.isFull(): | |
self.arr.append(data) | |
def dequeue(self): | |
if not self.isEmpty(): | |
self.arr.pop(0) | |
def isEmpty(self): | |
return len(self.arr) == 0 | |
def isFull(self): | |
return len(self.arr) == self.size | |
def front(self): | |
if not self.isEmpty(): | |
return self.arr[0] | |
def rear(self): | |
if not self.isEmpty(): | |
return self.arr[-1] | |
def Qusize(self): | |
return len(self.arr) | |
q = Queue(5) | |
n = int(input()) | |
for i in range(n): | |
k = int(input()) | |
q.enqueue(k) | |
print("Size of Queue = ", q.Qusize()) | |
print("Queue is Full = ", q.isFull()) | |
print("Queue is empty = ", q.isEmpty()) | |
print("First element of queue = ", q.front()) | |
print("Last element of queue = ", q.rear()) | |
q.dequeue(); | |
print("New First element of queue = ", q.front()) | |
print("Queue element are :",end=' ') | |
while not q.isEmpty(): | |
print(q.front(),end=' ') | |
q.dequeue() | |
print() | |
print("Queue is empty = ", q.isEmpty()) |
Saturday, September 14, 2019
Queue implement by array in python3
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()) |
Subscribe to:
Posts (Atom)