Python-대기열

우리는 서비스를 기다릴 때 일상 생활에서 대기열에 익숙합니다. 또한 큐 데이터 구조는 데이터 요소가 큐에 배열 된 위치와 동일 함을 의미합니다. 대기열의 고유성은 항목이 추가 및 제거되는 방식에 있습니다. 항목은 끝에서 허용되지만 다른 끝에서 제거됩니다. 따라서 이것은 선입 선출 방법입니다. 큐는 파이썬 목록을 사용하여 구현할 수 있으며 insert () 및 pop () 메서드를 사용하여 요소를 추가 및 제거 할 수 있습니다. 데이터 요소는 항상 대기열 끝에 추가되므로 삽입되지 않습니다.

대기열에 요소 추가

아래 예제에서는 First-in-First-Out 메서드를 구현하는 큐 클래스를 만듭니다. 데이터 요소를 추가하기 위해 내장 된 삽입 방법을 사용합니다.

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