TIL/DataStructure
[DS][Python] 큐의 구현 - 1. 기본 큐
탱!
2022. 5. 3. 20:08
큐를 대게 '대기줄'에 비교한다.
대기순서처럼 제일 먼저 들어온 것부터 차례로 처리해야하기 때문이다.
리스트를 사용해서 아주 간단한 구현을 해보자
1. 입력 : 삽입 (enQueue) 할 때는 사용자 임의로 순서를 정해서 들어간다.
queue=[None,None,None,None,None]
front=rear=-1 #아무것도 아닌 상태
rear +=1
queue[rear]="mars"
rear +=1
queue[rear]="jupiter"
rear +=1
queue[rear]="saturn"
2. 출력 : 추출 (deQueue) 할 때는 삽입순서대로 사용된다.
#첫번째 출력
front += 1
data = queue[front]
queue[front]=None
print(f"extract : {data}")
print(queue)
#2번째
front += 1
data = queue[front]
queue[front]=None
print(f"extract : {data}")
print(queue)
front += 1
data = queue[front]
queue[front]=None
print(f"extract : {data}")
print(queue)
extract : mars
[None, 'jupiter', 'saturn', None, None]
extract : jupiter
[None, None, 'saturn', None, None]
extract : saturn
[None, None, None, None, None]
참고로 파이썬에는 queue모듈이 있다.
https://docs.python.org/ko/3.7/library/queue.html
queue — 동기화된 큐 클래스 — Python 3.7.13 문서
queue — 동기화된 큐 클래스 소스 코드: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It is especially useful in threaded programming when information must be exchanged safely between multiple threads. The Queu
docs.python.org
응용된 버전은 다음편에