본문 바로가기
자료구조 알고리즘/자료구조

자료구조 - 큐(Queue)

by Dream Jin 2022. 9. 9.

언어는 python을 사용하였습니다.

2. 큐(Queue)

  • 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO) 구조 입니다.
  • FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대
  • 큐의 경우 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기위해 OS에서 많이 사용된다.

삽입, 삭제

  • 큐에 데이터를 추가하는 작업 인큐(Enqueue)
  • 큐에 데이터를 꺼내는 작업 디큐(dequeue)
  • 데이터를 꺼내는 쪽 프런트(front)
  • 데이터를 넣는 쪽 리어(rear)

파이썬에서의 큐(Queue)

  • 파이썬에서는 queue 라이브러리를 통해 다양한 큐 구조를 제공한다
  • 일반적인 Queue, LIFO 구조의 LifoQueue(), 우선순위를 두고 우선순위가 높은 순위로 출력하는 우선순위 큐 PriorityQueue() 등이 있다.

FIFO 구조의 Queue() 만들기

import queue
# 큐 만들기
data_queue = queue.Queue()
# 데이터 넣기
data_queue.put()
# 큐 사이즈 확인
data_queue.qsize()
# 데이터 꺼내기
data_queue.get()

리스트를 통한 큐의 enqueue, dequeue 기능 구현

queue_list = list()

# 데이터 추가
def enqueue(data):
    queue_list.append(data)

#데이터 뽑기
def inqueue():
    data = queue_list[0] #0번은 항상 제일 첫번째를 의미
    del queue_list[0] #첫 번째 데이터를 삭제 시켜주어야 한다
    return data

References

Do it! 점프 투 파이썬
Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬편
잔재미코딩

댓글