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