Skip to content

Commit e0a48a6

Browse files
committed
add queue use deque
1 parent 62e604d commit e0a48a6

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

docs/04_队列/queue.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# -*- coding: utf-8 -*-
22

3+
from collections import deque
34

45
# NOTE:注意这里是第三章 linked_list.py 里的内容,为了使文件自包含,我直接拷贝过来的
6+
7+
58
class Node(object):
69
def __init__(self, value=None, next=None): # 这里我们 root 节点默认都是 None,所以都给了默认值
710
self.value = value
@@ -154,3 +157,26 @@ def test_queue():
154157
with pytest.raises(EmptyError) as excinfo: # 我们来测试是否真的抛出了异常
155158
q.pop() # 继续调用会抛出异常
156159
assert 'empty queue' == str(excinfo.value)
160+
161+
162+
class MyQueue:
163+
"""
164+
使用 collections.deque 可以迅速实现一个队列
165+
"""
166+
def __init__(self):
167+
self.items = deque()
168+
169+
def append(self, val):
170+
return self.items.append(val)
171+
172+
def pop(self):
173+
return self.items.popleft()
174+
175+
def __len__(self):
176+
return len(self.items)
177+
178+
def empty(self):
179+
return len(self.items) == 0
180+
181+
def front(self):
182+
return self.items[0]

0 commit comments

Comments
 (0)