Python - 数据结构之队列

  • 简述

    当我们等待服务时,我们熟悉日常生活中的排队。队列数据结构也意味着相同的数据元素排列在队列中。队列的独特性在于添加和删除项目的方式。这些项目在一端是允许的,但从另一端移除。所以这是一种先进先出的方法。
    队列可以使用 python list 来实现,我们可以使用 insert() 和 pop() 方法来添加和删除元素。它们没有插入,因为数据元素总是添加到队列的末尾。
  • 添加元素

    在下面的示例中,我们创建了一个队列类,我们在其中实现了先进先出方法。我们使用内置的插入方法来添加数据元素。

    例子

    
    class Queue:
       def __init__(self):
          self.queue = list()
    
       def addtoq(self,dataval):
    # Insert method to add element
       if dataval not in self.queue:
          self.queue.insert(0,dataval)
          return True
       return False
    
       def size(self):
          return len(self.queue)
    
    TheQueue = Queue()
    TheQueue.addtoq("Mon")
    TheQueue.addtoq("Tue")
    TheQueue.addtoq("Wed")
    print(TheQueue.size())
    

    输出

    执行上述代码时,会产生以下结果 -
    
    3
    
  • 移除元素

    在下面的示例中,我们创建了一个队列类,我们在其中插入数据,然后使用内置的 pop 方法删除数据。

    例子

    
    class Queue:
       def __init__(self):
          self.queue = list()
    
       def addtoq(self,dataval):
    # Insert method to add element
       if dataval not in self.queue:
          self.queue.insert(0,dataval)
          return True
       return False
    # Pop method to remove element
       def removefromq(self):
          if len(self.queue)>0:
             return self.queue.pop()
          return ("No elements in Queue!")
    
    TheQueue = Queue()
    TheQueue.addtoq("Mon")
    TheQueue.addtoq("Tue")
    TheQueue.addtoq("Wed")
    print(TheQueue.removefromq())
    print(TheQueue.removefromq())
    

    输出

    执行上述代码时,会产生以下结果 -
    
    Mon
    Tue