-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path큐 구현1.py
37 lines (32 loc) · 1008 Bytes
/
큐 구현1.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
class Queue:
MAX_QSIZE = 5
def __init__(self):
self.item = [None]*Queue.MAX_QSIZE
self.size = 0
self.front = -1
self.rear = -1
def isEmpty(self):
return self.size == 0
def enqueue(self, x):
if self.size == len(self.items):
self.resize(2*len(self.items))
self.rear = (self.rear+1) % len(self.items)
self.items[self.rear] = x
self.size += 1
def dequeue(self):
if self.isEmpty():
return False
else:
self.front = (self.front+1) % len(self.items)
e = self.items[self.front]
self.size -= 1
return e
def resize(self, cap):
olditem = self.items
self.items = [None]*cap
walk = self.front
for i in range(len(olditem)):
self.items[i] = olditem[walk]
walk = (walk+1) % len(olditem)
self.front = -1
self.rear = self.size-1