数据结构与算法

7.双端队列Deque

2021-02-09  本文已影响0人  Stone_説

目录:
1.双端队列的定义
2.双端队列的图解
3.双端队列定义操作
4.双端队列的实现

1.双端队列的定义

1.双端队列是一种有次序的数据集合,其特征是:
    跟队列类似,其两端可以称作“首”“尾”端,但deque中数据既可以从队首加入,也可以从队尾加入;数据项也可以从两端移除。
    一定程度上来说,双端队列集成了栈和队列的能力
2.双端队列并不具有内在的LIFO或者FIFO特性
3.如果需要使用双端队列来模拟栈或队列,需要由使用者自行维护操作的一致性

2.双端队列的图解

双端队列.jpg

3.双端队列定义操作

Deque(): 创建一个空双端队列
addFront(item): 将item加入队首
addRear(item): 将item加入对尾
removeFront(): 从队首移除数据项,返回值为移除的数据项
removeRear(): 从队尾移除数据项,返回值尾移除的数据项
isEmpty(): 返回deque是否为空
size(): 返回deque中包含数据项的个数

4.双端队列的实现

class Deque:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def addFront(self,item):
        self.items.append(item)

    def addRear(self,item):
        self.items.insert(0,item)

    def removeFront(self):
        return  self.items.pop()

    def removeRear(self):
        return self.items.pop(0)

    def size(self):
        return len(self.items)
上一篇下一篇

猜你喜欢

热点阅读