덱 (Deque)

- 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태

- 두 개의 포인터를 사용하여 양쪽에서 삭제와 삽입을 발생 시킬 수 있음 ---> 큐와 스택을 합친 형태

- 참고: 자료구조 덱

덱 사용

- 파이썬에서 덱은 from collections import deque를 실행한 후 deque()통해 구현할 수 있다

- deque.append(x)를 통해 덱에 x를 오른쪽(뒤)에 push한다

- deque.appendleft(x)를 통해 덱에 x를 왼쪽(앞)에 push한다

- deque.pop()를 통해 덱에서 뒤의 원소를 pop한다

- deque.popleft()를 통해 덱에서 앞의 원소를 pop한다

- 참고: deque in python

예제

from collections import deque ## 덱(deque)를 사용하기 위해 deque라이브러리 import

deque = deque([1, 2, 3, 4, 5]) ## 큐(queue) 자료구조 생성 ---> deque([1, 2, 3, 4, 5])
deque.append(1) ## 덱의 뒤에 1 추가 ---> deque([1, 2, 3, 4, 5, 1]) 
deque.appendleft(2) ## 덱의 앞에 2 추가 ---> deque([2, 1, 2, 3, 4, 5, 1]) 
deque.popleft() ## 덱에서 앞의 원소를 추출함 --->  deque([1, 2, 3, 4, 5, 1])
deque.pop() ## 덱에서 뒤의 원소를 추출함 ---> deque([1, 2, 3, 4, 5])
deque
deque([1, 2, 3, 4, 5])