Leetcode 循环队列

 1 class MyCircularQueue:
 2 
 3     def __init__(self, k: int):
 4         """
 5         Initialize your data structure here. Set the size of the queue to be k.
 6         """
 7         self.queue = [0]*(k+1)      #牺牲一个存储空间
 8         self.head = 0
 9         self.tail = 0
10 
11     def enQueue(self, value: int) -> bool:
12         """
13         Insert an element into the circular queue. Return true if the operation is successful.
14         """
15         if self.isFull():
16             return False
17         else:
18             self.queue[self.tail] = value
19             self.tail = (self.tail+1)%len(self.queue)
20             return True
21         
22 
23     def deQueue(self) -> bool:
24         """
25         Delete an element from the circular queue. Return true if the operation is successful.
26         """
27         if self.tail == self.head:
28             return False
29         else:
30             self.head = (self.head+1)%len(self.queue)
31             return True
32         
33 
34     def Front(self) -> int:
35         """
36         Get the front item from the queue.
37         """
38         if not self.isEmpty():
39             return self.queue[self.head]
40         else:
41             return -1       #因为只存储正数,且返回值为 int 我只能写 -1 了,如果有需要可以根据需要修改这里的返回值
42         
43 
44     def Rear(self) -> int:
45         """
46         Get the last item from the queue.
47         """
48         if not self.isEmpty():
49             return self.queue[(self.tail-1+len(self.queue))%len(self.queue)]
50         else:
51             return -1       #因为只存储正数,且返回值为 int 我只能写 -1 了,如果有需要可以根据需要修改这里的返回值
52         
53 
54     def isEmpty(self) -> bool:
55         """
56         Checks whether the circular queue is empty or not.
57         """
58         return self.head == self.tail
59         
60 
61     def isFull(self) -> bool:
62         """
63         Checks whether the circular queue is full or not.
64         """
65         return (self.tail+1)%len(self.queue) == self.head
66         

 

posted @ 2020-03-15 09:22  Halo辉Go  阅读(193)  评论(0编辑  收藏  举报