--- Python deque implemented using sequence table

class Dqueue:
    """双端队列"""

    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__':
    dq = Dqueue()
    print(dq.is_empty())
    dq.add_rear(1)
    dq.add_rear(2)
    dq.add_front(3)
    dq.add_front(4)  # 4 3 1 2
    print(dq.pop_front())
    print(dq.pop_rear())
    print(dq.size())

Guess you like

Origin www.cnblogs.com/KX-Lau/p/12498446.html