Advertisement
Guest User

Untitled

a guest
May 27th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. class CircularQueue:
  2.  
  3. class __Node:
  4. def __init__(self, value):
  5. self.value = value
  6. self.next = self.prev = None
  7.  
  8. def __init__(self):
  9. self.front = self.rear = None
  10.  
  11. def enqueue(self, value):
  12. if self.front is None and self.rear is None:
  13. newNode = CircularQueue.__Node(value)
  14. self.front = self.rear = newNode
  15. elif self.rear is not None:
  16. newNode = CircularQueue.__Node(value)
  17. self.__enqueue(newNode, self.front)
  18. self.rear = newNode
  19.  
  20. def __enqueue(self, node, cur_node):
  21. if cur_node.next is None:
  22. cur_node.next = node
  23. node.prev = cur_node
  24. return
  25. else:
  26. self.__enqueue(node, cur_node.next)
  27.  
  28. def dequeue(self):
  29. if self.front is None:
  30. print('No data available for dequeue!')
  31. elif self.front.next is not None:
  32. self.front.next.prev = None
  33. front = self.front
  34. del self.front
  35. self.front = front.next
  36. del front
  37. elif self.front.next is None:
  38. del self.front
  39. self.front = self.rear = None
  40.  
  41. def showQueue(self):
  42. if self.front is None:
  43. print('No data available for showing!')
  44. else:
  45. return self.__showQueue(self.front)
  46.  
  47. def __showQueue(self, cur_node):
  48. if cur_node is None:
  49. return
  50. else:
  51. print(cur_node.value)
  52. self.__showQueue(cur_node.next)
  53.  
  54.  
  55. def getFront(self):
  56. return self.front
  57.  
  58. def isempty(self):
  59. return self.front == self.rear
  60.  
  61. queue = CircularQueue()
  62.  
  63. queue.enqueue(10)
  64. queue.enqueue(20)
  65. queue.dequeue()
  66. queue.enqueue(30)
  67. queue.dequeue()
  68. queue.enqueue(40)
  69. queue.enqueue(50)
  70.  
  71. queue.showQueue()
  72. # OUTPUT:-
  73. # 30
  74. # 40
  75. # 50
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement