python数据结构(队列)

目录

队列

链队列的插入和删除运算

初始化

判断队列是否为空

入队

出队

队列个数

循环队列(判断队空队满)


队列

一种操作受限制的特殊线性表,只允许在线性表的一端进行插入,而在另一端进行删除。

特性:先进先出 (就和排队一样)

入队:将值为x的元素插入队尾

出队:删去对头元素并返回该元素

链队列的插入和删除运算

初始化

Class Queue(object):
    def __init__(self):   #初始化
      self.items=[]

判断队列是否为空

    def is_empty(self):    #判断队列是否为空
      return self.items==[]    #返回布尔类型

入队

    def equeue(self,item):   #入队列
      self.items.insert(0,item)     
#入队列是永远从第一个开始进去,这样可以使出队列时直接通过pop方法来出队列,这样就做到了先进先出

出队

    def dequeue(self):    #出队列
      return self.items.pop()     #出队列出最后一个就相当于先进先出

队列个数

    def size(self):       #队列元素个数
      return len(self.items)      #长度

循环队列(判断队空队满)

还有一个解决方法:

        设置一个计数器

        队空条件:count==0

        队满条件:count==maxsize

        判断方法:

        假设计数器count,初值为0

        当入队列操作成功,count+1

        当出队列操作成功,count-1

        这样的话,count不仅具有计数功能,而且可以起到标识作用。

最后实例:

class Queue(object):
    def init(self):
        self.items=[]
    def is_empty(self):                #判断队列是否为空
        return self.items==[]
    def enqueue(self,item):             #入队列
        self.items.insert(0,item)
    def dequeue(self):                 #出队列
        return self.items.pop()
    def size(self):                     #队列元素个数
        return len(self.items)
if name == "__main__":
    queue = Queue()
    print(queue.is_empty())
    print(queue.size())
    queue.enqueue(1)
    queue.enqueue(2)
    queue.enqueue(3)
    print(queue.dequeue())
    print(queue.dequeue())
    print(queue.dequeue())
    print(queue.is_empty())
print(queue.size())

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值