数据结构(六)python使用顺序表实现队列

版权声明:尊重原作者,转载请在文章头部注明网址。 https://blog.csdn.net/u013034226/article/details/86478407

概念:

队列与后进先出(LIFO, Last In First Out)的栈不同,队列是先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!

队列比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。

应用场景:

在web开发中,我们经常会遇到处理批量任务的情况,如:群发邮件、短信验证码等等,我们需要做的是,当用户点击群发邮件、获取短信验证码的时候,浏览器提示“提交成功、正在发送”之类的信息给用户,此时用户可以关闭浏览器,不需要一直等在当前页面,而批量任务就交给队列来处理,让用户的体验更好。

python使用列表实现队列:

class Queue(object):
    def __init__(self):
        """队列初始化"""
        self.que = []

    def enqueue(self,item):
        """往队列尾部添加一个item元素"""
        self.que.append(item)
    def dequeue(self):
        """从队列头部删除一个元素"""
        return self.que.pop(0)

    def is_empty(self):
        """判断一个队列是否为空"""
        return self.que == []
    def size(self):
        """返回队列的大小"""
        return len(self.que)

if __name__ == '__main__':
    que = Queue()
    # 先后向队列中添加元素:1、2、3
    que.enqueue(1)
    que.enqueue(2)
    que.enqueue(3)
    print('入队完成后队列长度为:{}'.format(que.size()))
    # 依次出队
    print(que.dequeue())
    print(que.dequeue())
    print(que.dequeue())
    print('出队完成后队列长度为:{}'.format(que.size()))

运行效果:

展开阅读全文

没有更多推荐了,返回首页