큐
큐(Queue)는 선입선출(First In First Out)의 규칙을 따르는 자료구조이다.
스택과 마찬가지로 리스트 자료구조의 연장형이며, 큐의 앞 부분에서 삭제가, 뒷 부분에서 삽입이 이루어진다.
큐의 import 와 연산
큐를 import 하는 주된 방법은 크게 두 가지가 존재한다.
import 한 방식에 따라서 사용 가능한 함수에 약간의 차이가 있으니 주의하자.
from queue import Queue
from queue import Queue
Q = Queue()
print(type(Q)) # class <'queue.Queue'>
- 큐에서의 삽입(put)
Q.put(data): 큐에 data를 삽입한다. 이때, 삽입되는 data의 위치는 큐의 뒷 부분이다.
- 큐에서의 삭제(get)
Q.get(): 큐의 맨 앞 원소를 큐에서 삭제한다. 이때, 삭제되는 원소가 리턴된다.
from queue import Queue
Q = Queue()
Q.put(1) # [1]
Q.put(2) # [1, 2]
print(Q.get()) # 1
큐의 더 많은 내장 함수를 공부하고 싶다면 아래 링크를 참고하자.
https://www.geeksforgeeks.org/queue-in-python/?ref=gcse
- 주의사항
- from queue import Queue에서 append() 함수와 popleft() 함수는 사용할 수 없다.
- 큐는 인덱싱과 슬라이싱을 할 수 없다. Queue의 개념에서 벗어나는 행동이기 때문이다.
from collections import deque
from collections import deque
Q = deque()
print(type(Q)) # <class 'collections.deque'>
처음 보는 deque(덱)이라는 용어가 등장했다.
덱은 큐를 포함하는 자료구조로, 다음 글에서 자세하게 설명하겠다.
덱은 큐의 상위호환 자료구조이니, 큐의 기능도 한다고 대충 생각하고 넘어가면 된다.
- 큐에서의 삽입(append)
Q.append(data): 큐에 data를 삽입한다. 이때, 삽입되는 data의 위치는 큐의 뒷 부분이다.
- 큐에서의 삭제(popleft)
Q.popleft(): 큐의 맨 앞 원소를 큐에서 삭제한다. 이때, 삭제되는 원소가 리턴된다.
from collections import deque
Q = deque()
Q.append(1) # [1]
Q.append(2) # [1, 2]
print(Q.popleft()) # 1
- 주의사항
- from collections import deque 에서 put() 함수와 get() 함수는 사용할 수 없다.
'알고리즘 > 자료구조' 카테고리의 다른 글
[자료구조][Python] 덱 (Deque) (0) | 2024.03.17 |
---|---|
[자료구조][Python] 스택 (Stack) (0) | 2024.01.25 |