Python 대기 열 데이터 구조 구현

대기 열 은 광범 위 하 게 응용 되 는 데이터 구조 로 한 끝 에 만 삽입 작업 을 할 수 있 고 다른 한 끝 에 서 는 삭제 작업 을 할 수 있 는 선형 표 로 선진 적 인 선 출 (First - In - First - Out) 원칙 을 가진다.대기 열의 두 가지 주요 동작 은 대기 열 에 새 요 소 를 삽입 하고 대기 열 에 있 는 요 소 를 삭제 하 는 것 입 니 다.삽입 조작 도 입 대 라 고 하고 삭제 조작 도 출 대 라 고 한다.입 대 는 팀 끝 에 새로운 요 소 를 삽입 하고 팀 에서 나 오 는 작업 은 팀 머리의 요 소 를 삭제 합 니 다.
Python 에 서 는 대기 열 함수 가 제공 되 지 않 았 기 때문에 목록 을 대기 열 로 사용 합 니 다. 다음은 클래스 정의 대기 열 에서 자주 사용 되 는 동작 입 니 다.
class queue:
    def __init__(self):
        self.items = []

    def isqueueEmpty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0,item)

    def dequeue(self):
        return self.items.pop()

    def queuesize(self):
        return len(self.items)

queue () 는 빈 대기 열 을 정의 합 니 다. 인자 가 없 으 며, 반환 값 은 빈 대기 열 입 니 다.isquueEmpty () 에서 대기 열 이 비어 있 는 지 확인 합 니 다.인자 없 이 불 값 을 되 돌려 줍 니 다.enqueue () 는 대기 열 끝 에 데이터 항목 을 추가 합 니 다. 매개 변 수 는 데이터 항목 이 고 반환 값 이 없습니다.dequeue () 는 대기 열 머리의 데이터 항목 을 삭제 합 니 다. 매개 변수 가 필요 하지 않 습 니 다. 반환 값 은 삭 제 된 데이터 이 고 대기 열 자체 에 변화 가 있 습 니 다.queuesize () 는 대기 열 데이터 항목 의 수량 을 되 돌려 줍 니 다.인자 가 없 으 면 정 수 를 되 돌려 줍 니 다.
테스트 코드:
q=queue()
q.enqueue('first')
q.enqueue('second')
y=q.isqueueEmpty()
print('    :',y)
print('      :',q.queuesize())
print('  :',q.dequeue())
print('  :',q.dequeue())
print('    :',q.isqueueEmpty())

인쇄 결과: 비어 있 는 지 여부: False 대기 열 요소 개수: 2 줄: first 줄: second 가 비어 있 는 지 여부: True

좋은 웹페이지 즐겨찾기