Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CircularQueue:
- class __Node:
- def __init__(self, value):
- self.value = value
- self.next = self.prev = None
- def __init__(self):
- self.front = self.rear = None
- def enqueue(self, value):
- if self.front is None and self.rear is None:
- newNode = CircularQueue.__Node(value)
- self.front = self.rear = newNode
- elif self.rear is not None:
- newNode = CircularQueue.__Node(value)
- self.__enqueue(newNode, self.front)
- self.rear = newNode
- def __enqueue(self, node, cur_node):
- if cur_node.next is None:
- cur_node.next = node
- node.prev = cur_node
- return
- else:
- self.__enqueue(node, cur_node.next)
- def dequeue(self):
- if self.front is None:
- print('No data available for dequeue!')
- elif self.front.next is not None:
- self.front.next.prev = None
- front = self.front
- del self.front
- self.front = front.next
- del front
- elif self.front.next is None:
- del self.front
- self.front = self.rear = None
- def showQueue(self):
- if self.front is None:
- print('No data available for showing!')
- else:
- return self.__showQueue(self.front)
- def __showQueue(self, cur_node):
- if cur_node is None:
- return
- else:
- print(cur_node.value)
- self.__showQueue(cur_node.next)
- def getFront(self):
- return self.front
- def isempty(self):
- return self.front == self.rear
- queue = CircularQueue()
- queue.enqueue(10)
- queue.enqueue(20)
- queue.dequeue()
- queue.enqueue(30)
- queue.dequeue()
- queue.enqueue(40)
- queue.enqueue(50)
- queue.showQueue()
- # OUTPUT:-
- # 30
- # 40
- # 50
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement