자료구조 큐 queue

안성현·2023년 3월 27일
1

파이썬에서 큐(Queue)는 데이터를 선입선출(FIFO, First-In-First-Out) 방식으로 처리하는 자료구조입니다. 큐는 일반적으로 데이터를 추가하는 enqueue와 데이터를 추출하는 dequeue 연산을 지원합니다. 파이썬에서는 queue 모듈을 통해 다양한 종류의 큐를 제공합니다.


  1. Queue 클래스: 스레드 간 안전하게 사용할 수 있는 큐 구현체입니다.
  2. LifoQueue 클래스: 데이터를 후입선출(LIFO, Last-In-First-Out) 방식으로 처리하는 스택 구현체입니다.
  3. PriorityQueue 클래스: 데이터를 우선순위에 따라 처리하는 큐 구현체입니다.

Queue 주요함수
enqueue() 데이터를 추가해주는 함수(가장 뒤쪽에 추가가 된다)

dequeue()
데이터를 뽑아내는 함수(가장 앞쪽에 데이터가 삭제된다)

peek()
꺼낼 요소를 엿보는 함수(가장 앞쪽의 데이터를 확인한다)

clear()
모든 요소를 삭제 시켜주는 함수

Queue 클래스를 예로 들면, 다음과 같이 사용할 수 있습니다.


import queue

q = queue.Queue()   # Queue 객체 생성

q.put('data1')      # 데이터 추가
q.put('data2')
q.put('data3')

while not q.empty(): # 데이터 추출
    print(q.get())

위 코드에서 Queue() 함수를 통해 q 객체를 생성한 후, put() 메서드를 사용하여 데이터를 추가합니다. 이후 while문과 get() 메서드를 사용하여 데이터를 추출하면서 출력합니다. empty() 메서드는 큐가 비어있는지 확인하는 함수입니다.

파이썬의 큐 모듈은 멀티스레드 환경에서 안전하게 사용할 수 있는 큐도 제공하기 때문에, 스레드 간 데이터 공유에 활용할 수 있습니다. 또한, 우선순위 큐도 지원하기 때문에, 우선순위에 따라 데이터 처리가 필요한 경우에도 유용하게 사용할 수 있습니다.

profile
깊이 있는 배움을 가진 개발자 안성현입니다

0개의 댓글

Powered by GraphCDN, the GraphQL CDN