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()) |
Saturday, September 14, 2019
Queue implementation uisng linked list in python3
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment