def test_features(self): qe = Queue() qe.enqueue(3) qe.enqueue(12) qe.enqueue(5) qe.enqueue(17) self.assertEqual(qe.count(), 4) self.assertEqual(qe.peek(), 3) self.assertEqual(qe.dequeue(),3) self.assertEqual(qe.dequeue(),12) self.assertEqual(qe.count(), 2) self.assertEqual([x for x in qe.items()], [5,17])
def __level_order(self, root): q = Queue() q.enqueue(root) while q.count() != 0: node = q.dequeue() yield node.data if node.left != None: q.enqueue(node.left) if node.right != None: q.enqueue(node.right)
class Stacky(): def __init__(self): self.__q = Queue() def push(self, elem): self.__q.enqueue(elem) def pop(self): temp = Queue() while self.__q.count() > 1: temp.enqueue(self.__q.dequeue()) result = self.__q.dequeue() self.__q = temp return result def is_empty(self): return self.__q.is_empty() def count(self): return self.__q.count() def top(self): return self.__q.top()
from queue import Queue q = Queue(3) print("==========================") print(q.head) print(q.tail) print(q.count()) print(q.capacity) print(q.full()) print(q.empty()) for i in q: print(i) q.put_in(3) print("==========================") print(q.head) print(q.tail) print(q.count()) print(q.capacity) print(q.full()) print(q.empty()) for i in q: print(i) q.put_in('aaa') print("==========================") print(q.head) print(q.tail)
from collections import deque q = deque(maxlen=5) # 创建双端队列 for item in [3, 5, 7, 9, 11]: q.append(item) q.append(13) # 队列满,自动溢出 q.append(15) deque([3, 5, 7, 9, 11], maxlen=5) q.appendleft(5) # 从左侧添加元素,右侧自动溢出 q.popleft() # 弹出并返回最左端元素 q.pop() # 弹出并返回最右端元素\ q.insert(2, 10) # 在中间位置插入元素 q += [1, 2] # 追加多个元素 q *= 2 # 序列重复 q.count(10) # 返回元素的出现次数 q.rotate(2) # 循环右移2个元素 q.rotate(-2) # 循环左移2个元素 # %% # 具名元组 from collections import namedtuple point = namedtuple('Point', ['x', 'y', 'z']) # 创建具名元组表 point p = point(3, 4, 5) p p.x # 访问成员 p._fields # 查看字段列表 p._replace(x=30, z=9) # 替换成员值,返回新对象 # p.x = 7 # 不允许这样直接赋值