第十一节 双端队列的概念和python代码实现
deque 即双端队列。
(deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
双端队列是限定插入和删除操作在表的两端进行的线性表。这两端分别称做端点1和端点2。也可像栈一样,可以用一个铁道转轨网络来比喻双端队列。在实际使用中,还可以有输出受限的双端队列(即一个端点允许插入和删除,另一个端点只允许插入的双端队列)和输入受限的双端队列(即一个端点允许插入和删除,另一个端点只允许删除的双端队列)。而如果限定双端队列从某个端点插入的元素只能从该端点删除,则该双端队列就蜕变为两个栈底相邻的栈了。
class Dque(object): ‘‘‘双端队列‘‘‘ 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 not self.__list def size(self): ‘‘‘返回队列的大小‘‘‘ return len(self.__list) if __name__ == "__main__": due = Dque() due.add_front(1) due.add_rear(2) print(due.pop_front())
相关推荐
算法改变人生 2020-06-03
alicelmx 2020-01-12
CoderBoy 2019-12-09
elizabethxxy 2018-12-25
pythoning 2015-04-22