-
Notifications
You must be signed in to change notification settings - Fork 193
/
Copy path622.py
43 lines (36 loc) · 1.05 KB
/
622.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class Node:
def __init__(self, value):
self.val = value
self.next = self.pre = None
class MyCircularQueue:
def __init__(self, k):
self.size = k
self.curSize = 0
self.head = self.tail = Node(-1)
self.head.next = self.tail
self.tail.pre = self.head
def enQueue(self, value):
if self.curSize < self.size:
node = Node(value)
node.pre = self.tail.pre
node.next = self.tail
node.pre.next = node.next.pre = node
self.curSize += 1
return True
return False
def deQueue(self):
if self.curSize > 0:
node = self.head.next
node.pre.next = node.next
node.next.pre = node.pre
self.curSize -= 1
return True
return False
def Front(self):
return self.head.next.val
def Rear(self):
return self.tail.pre.val
def isEmpty(self):
return self.curSize == 0
def isFull(self):
return self.curSize == self.size