본문 바로가기

코딩/파이썬 기초

파이썬 튜토리얼 026. 리스트와 자료구조 큐

python : list : 자료구조 큐

리스트와 자료구조 큐

큐(queue)는 임의 데이터에 제한적으로 접근할 수 있는 자료구조의 하나이다.

큐는 한 쪽에서 데이터를 넣으면 다른 쪽에서 데이터를 빼는 자료구조로 FIFO(first in first out)의 구조를 갖는다.

 

출처 : 나모위키

list.append(), list.pop()

리스트 메서드 append와 pop을 사용하면 자료구조 큐를 쉽게 구현할 수 있다.

위의 그림에서 자료구조 큐에 데이터를 넣는 enqueue는 리스트 메서드 append에, 자료구조 큐에서 데이터를 빼는 dequeue는 리스트 메서드 pop에 각각 대응된다.

 

my_queue = list()

my_queue.append(5)
print('+', my_queue)

my_queue.append(7)
print('+', my_queue)

my_queue.append(10)
print('+', my_queue)

ret = my_queue.pop(0)
print('-', my_queue)

my_queue.append(3)
print('+', my_queue)

ret = my_queue.pop(0)
print('-', my_queue)

ret = my_queue.pop(0)
print('-', my_queue)

ret = my_queue.pop(0)
print('-', my_queue)

 

자료구조 큐

collections.deque

데이터를 빼내는 속도 측면에서 리스트를 사용하는 것 보다는 collectons 모듈의 deque를 사용하면 더 효울적일 수 있다.

 

from collections import deque

my_queue = deque([1, 2, 3])
print(my_queue)

my_queue.append(10)
print(my_queue)

my_queue.append(20)
print(my_queue)

my_queue.popleft()
print(my_queue)

my_queue.popleft()
print(my_queue)

ret = my_queue.popleft()
print(my_queue)
print(ret)

 

collections.deque