1、队列
class Queue():
'''队列'''
'''构造函数:把队列最终保存的数据保存到哪里,把这个容器应该先初始化'''
def __init__(self):
self.__list=[]
'''无论是头部添加还是尾部添加,或是头部弹出或尾部弹出,时间复杂度都是一个O(1),一个O(n),该怎么选择,看你经常使用哪一个操作'''
def enqueue(self,item):
self.__list.append(item)
# self.insert(0,item)
def dequeue(self):
return self.__list.pop(0)
# return self.__list.pop()
def is_empty(self):
return self.__list==[]
def size(self):
return len(self.__list)
if __name__=='__main__':
q=Queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
2、双端队列
class Deque():
'''双端队列'''
def __init__(self):
self.__list=[]
def add_front(self,item):
self.__list.insert(0,item)
def add__rear(self,item):
self.__list.append(item)
def pop__front(self):
return self.__list.pop(0)
def pop__rear(self):
return self.__list.pop()
def is_empty(self):
return self.__list==[]
def size(self):
return len(self.__list)
注:python批量替换:ctrl+R→replace all