알고리즘/자료구조

[자료구조][Python] 큐 (Queue)

핑크사우루스 2024. 2. 5. 22:36

큐(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

 

Queue in Python - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

 

- 주의사항

  • 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