Example #1
0
 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])
Example #2
0
 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)
Example #3
0
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()
Example #4
0
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)
Example #5
0
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  # 不允许这样直接赋值