CircularQ
shinta0x01
python
a year ago
1.7 kB
11
Indexable
class Node: def __init__(self, data): self.data = data self.next = None class CircularQ: def __init__(self): self.front = None self.rear = None def enqueue(self, data): node = Node(data) if self.rear is None: self.front = self.rear = node self.rear.next = self.front else: self.rear.next = node self.rear = node self.rear.next = self.front def dequeue(self): if self.rear is None: self.is_empty() else: if self.front == self.rear: self.front = self.rear = None else: self.front = self.front.next self.rear.next = self.front def front_q(self): if self.rear is None: self.is_empty() else: print(self.front.data) def rear_q(self): if self.rear is None: self.is_empty() else: print(self.rear.data) def is_empty(self): if self.rear is None: print('Queue is empty') def display(self): current = self.front while True: if self.rear is None: break print(current.data, '', end='') current = current.next if current == self.front: break queue = CircularQ() queue.enqueue(10) queue.enqueue(9) queue.enqueue(4) queue.enqueue(1) # queue.dequeue() # queue.dequeue() # queue.dequeue() # queue.dequeue() queue.display() print() queue.front_q() queue.rear_q()
Editor is loading...
Leave a Comment