- 큐는 선입선출(FIFO) 방식을 따르는 자료구조입니다. 선입선출을 말 그대로 First In First Out, 먼저 들어온 데이터가 먼저 나가는 방식입니다.
- 파이썬에서 큐는 리스트 자료형을 사용하므로 큐에 데이터를 넣는 방식인 enqueue를 append()메소드, 데이터를 빼는 dequeue를 pop()으로 구현할 수 있다.
큐의 특징
-장점
데이터를 선입선출(FIFO)의 순서로 처리하므로, 처리 순서에 대한 논리를 명확하게 나타낼 수 있습니다.
다양한 용도로 활용이 가능합니다. 큐는 작업 스케줄링, 네트워크 통신, 데이터 버퍼링 등의 분야에서 활용됩니다.
파이썬에서는 queue 모듈을 통해 큐 자료구조를 구현할 수 있습니다. 이는 간단하게 사용할 수 있으며, 다양한 방식으로 큐를 구현할 수 있습니다.
큐는 스택과 달리, 데이터를 중간에 삽입하거나 삭제할 수 없기 때문에 구현이 간단합니다.
-단점
큐를 구현하는 데에는 일정한 메모리 공간이 필요합니다. 이는 큐가 다수의 데이터를 저장할 경우 메모리 사용량이 증가할 수 있음을 의미합니다.
큐를 구현하는 데에는 리스트와 같은 메모리 복사 작업이 필요합니다. 이는 큐에 데이터를 추가하거나 삭제할 때마다 시간이 소요됩니다.
파이썬에서 리스트로 큐를 구현하는 경우, 맨 앞에서 데이터를 삭제할 때마다 리스트의 모든 요소를 한 칸씩 왼쪽으로 이동해야 하므로 성능에 영향을 미칠 수 있습니다. 이를 해결하기 위해서는 데크(deque) 자료구조를 사용하거나, 링크드 리스트와 같은 다른 자료구조를 고려해야 합니다.
파이썬 큐 예제코드
- 큐 종류에는 위의 코드와 같이 일반적인 큐와 우선순위 큐, LIFO 큐, 데크로 구현한 큐 등 여러 종류가 있습니다.