-
关于队列
- 实现代码
class Queue(object):
"""队列"""
def __init__(self):
self.__list = []
def enqueue(self, item):
"""往队列中添加一个itme元素"""
self.__list.append(item) #时间复杂度O(1)
#self.__list.insert(0, item) #时间复杂度O(n)
def dequeue(self):
"""从队列头部删除一个元素"""
return self.__list.pop(0) #时间复杂度O(n)
#return self.pop() #时间复杂度O(1)
#如此一来,不论选择什么方法,时间复杂度都是O(n)
#所以此时应该看程序经常做的是出队还是入队操作
#哪个操作使用的频繁,就将此操作时间复杂度设为O(1)
def is_empty(self):
"""判断一个队列是否为空"""
return self.__list == []
def size(self):
"""返回队列的大小"""
return len(self.__list)
if __name__ == "__main__":
s = Queue()
s.enqueue(1)
s.enqueue(2)
s.enqueue(3)
print(s.is_empty())
print(s.size())
print(s.dequeue())
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/xinqi/PycharmProjects/test/test.py
False
3
1