python数据结构与算法——栈、队列与双端队列

栈:是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端进行加入数据和输出数据的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。

由于只能在一端操作,因此按照后进先出的原理运作

栈的实现

支持操作:

Stack()创建一个新的空栈

push(item)添加一个新的元素item到栈顶

pop()弹出栈顶元素

peek()返回栈顶元素

is_empty()判断栈是否为空

size()返回栈的元素个数

队列与双端队列

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表

队列是一种先进先出的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作。

队列的实现

双端队列

双端队列,是一种具有队列和栈的性质的数据结构

双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队

双端队列的实现

操作:

Deque()创建一个空的双端队列

add_front(item)从队头加入一个item元素

add_rear(item)从队尾加入一个item元素

remove_front()从队头删除一个item元素

remove_rear()从队尾删除一个item元素

is_empty()判断双端是否为空

size()返回队列大小

持续更新…

微信订阅号:TechBoard

原创文章,可转发,可收藏,转载要说一声哦~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180930G04LUI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券