数据结构笔记:双端队列

守給你的承諾、 提交于 2020-03-07 11:22:14

原文地址

分类目录——数据结构笔记

双端队列(deque,double-ended queue),是一种具有队列和栈的性质的数据结构。

双端队列中每一端,都可以进行存入和取出,去其中一段,都像一个栈一样。

存取也只限定在两端,不能在中间

  • 双端队列的实现

    通过线性表实现

    class Dequeue(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)   # 时间复杂度O(n)
    
        def pop_rear(self):
            '''从队列尾删除'''
            return self.__list.pop()
    
        def is_empty(self):
            '''是否空'''
            return not self.__list
    
        def size(self):
            '''元素数量'''
            return len(self.__list)
    
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!