zoukankan      html  css  js  c++  java
  • 数据结构与算法:队列(Queue)的实现

    在数据结构当中,有一种结构叫做队列。队列和栈都是一个类似于列表的东西,唯一不同的地方则是“先进先出”。队列就像我们在食堂排队吃饭一样,先排队的同学最先打到饭,下面是我画的队列的图片:

     从这种图当中我们可以看到队列就如同一个吸管一样,最先从吸管左边进入的数字1,同时也最先吸管的最右边出来。是否十分容易理解呢?现在我们使用Python来实现这个数据结构:

    class Queue():
    
        def __init__(self):
            # 初始化一个空的列表
            self.__list=[]
    
            # 往队列里插入元素
        def enqueue(self,item):
            self.__list.append(item)
    
        def dequeue(self):
            return self.__list.pop(0)# 弹出队列里最先进入的元素
    
        # 判断队列是否为空
        def is_empty(self):
            return self.__list == []
    
        # 计算队列的大小
        def size(self):
            return len(self.__list)
    
    
    queue = Queue()
    
    # 创建队对象完成,向队列里面灌入元素
    
    queue.enqueue(1)
    queue.enqueue(2)
    queue.enqueue(3)
    queue.enqueue(4)
    
    print("If this queue is empty? :",queue.is_empty())
    
    # 将队列里的元素一个一个依次取出
    
    print(queue.dequeue())
    print(queue.dequeue())
    print(queue.dequeue())
    print(queue.dequeue())

    最后得到的输出是:

    If this queue is empty? : False
    1
    2
    3
    4
    

     可以看到,我们插入队列元素的顺序是1,2,3,4.最后出队列的时候,元素的输出顺序也是1,2,3,4.这就队列的特点了。队列将会在后面的深度优先搜索算法当中起到很大的作用。

     

  • 相关阅读:
    2013-11-23 sentence patterns
    面试题 盛水 twitter
    Uva 10025 The ? 1 ? 2 ? ... ? n = k problem
    FTP服务(5)客户连接常见故障现象
    FTP服务(4)基于MySQL数据库认证
    FTP服务(3)实现基于文件验证的vsftpd虚拟用户
    FTP服务(2)实现基于SSL的FTPS
    FTP服务(1)
    Apache httpd服务
    Apache httpd服务——常用配置
  • 原文地址:https://www.cnblogs.com/geeksongs/p/12849151.html
Copyright © 2011-2022 走看看