CS/자료구조

큐 자료구조 이론 및 예제 (python)

모딩 2020. 12. 7. 21:51
반응형

큐 자료구조

  • 큐는 먼저 들어온 데이터가 먼저 나가는 형식(선입선출)의 자료구조이다. 
  • 입구가 출구가 모두 뚫려 있는 터널과 같은 형태로 시각화 할 수 있다. 
  • 대기열이라고 생각하면 쉽다.

 

큐 구현 방법

1) collection 모듈의 deque 객체 활용

  • 큐는 스택과 같이 리스트로 구현할 수 있다. 하지만 리스트로 사용할 경우 pop(0)은 시간복잡도 O(N)를 가지고 있고,  popleft()은 시간복잡도 O(1)을 가지고 있다. 따라서 popleft()를 쓰는게 더 효율적이기 때문에 deque를 사용한다.
  • 시간복잡도는 O(1)이다.
  •  deque은 'double-ended queue'의 줄임말로서 스택과 큐를 합친 것과 같이 양방향에서 데이터를 삽입 및 추출할 수 있는 자료형이다. deque 'deck'(덱)으로 발음한다. 

2) queue 모듈의 Queue 클래스 활용

큐 구현 예제 (파이썬)

  • 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
from collections import deque

queue = deque()

# 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
queue.append(5)
queue.append(2)
queue.append(3)
queue.append(7)
queue.popleft()
queue.append(1)
queue.append(4)
queue.popleft()

print(queue)
queue.reverse()
print(queue)

 

  • 입력을 위해서 append()를 사용하고 출력을 위해 popleft()를 사용한다.
  • append()는 원소를 오른쪽 즉, 맨 마지막에 삽입한다.
  • popleft()는 원소를 왼쪽 즉, 맨 처음부터 뺀다. 
반응형

'CS > 자료구조' 카테고리의 다른 글

재귀 함수 구현 (python)  (0) 2020.12.07
스택 자료구조 이론 및 예제 (python)  (0) 2020.12.07