class DataQueue:
"""队列。先进先出"""
def __init__(self, elements:list=[]) -> None:
self.__data__=list()
for element in elements:
if element not in self.__data__:
self.__data__.append(element)
def __repr__(self) -> str:
"""print函数打印该对象所显示的内容"""
return self.__data__.__repr__()
def __len__(self):
"""Return len(self)."""
return self.__data__.__len__()
def __iter__(self):
"""Implement iter(self)."""
return self.__data__.__iter__()
def __next__(self):
return self.__data__.__next__()
def enqueue(self, element):
"""入队。向队列尾部添加元素"""
if element in self.__data__:
return None
return self.__data__.append(element)
def dequeue(self):
"""出队。若队列为空,则返回None。移除队列头部的元素。"""
if self.__data__:
return self.__data__.pop(0)
return None
def clear(self):
"""清空队列"""
return self.__data__.clear()
@property
def length(self):
"""队列长度"""
return len(self.__data__)
@property
def is_empty(self):
"""是否空队列"""
return len(self.__data__) == 0