File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 1
1
# -*- coding: utf-8 -*-
2
2
3
+ from collections import deque
3
4
4
5
# NOTE:注意这里是第三章 linked_list.py 里的内容,为了使文件自包含,我直接拷贝过来的
6
+
7
+
5
8
class Node (object ):
6
9
def __init__ (self , value = None , next = None ): # 这里我们 root 节点默认都是 None,所以都给了默认值
7
10
self .value = value
@@ -154,3 +157,26 @@ def test_queue():
154
157
with pytest .raises (EmptyError ) as excinfo : # 我们来测试是否真的抛出了异常
155
158
q .pop () # 继续调用会抛出异常
156
159
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 ]
You can’t perform that action at this time.
0 commit comments