덱은 일반적인 큐와 마찬가지로 데이터의 삽입 삭제를 수행하는 자료구조이다.
덱은 rear와 front 어느 곳에서든 삽입 삭제가 모두 이루어 질 수 있다.
덱의 연산은 크게 push(데이터 삽입), pop(데이터 삭제)으로 나뉜다.
크기가 가변적이고 양 끝 엘리먼트의 append와 pop이 압도적으로 빠르다.
원하는 요소에 바로 접근이 가능하다.
구현이 어렵고 데이터의 중간 삽입, 삭제가 용이하지 않다는 단점이 있다.
from collections import deque
deq = deque()
# Add element to the start
deq.appendleft(10)
# Add element to the end
deq.append(0)
# Pop element from the start
deq.popleft()
# Pop element from the end
deq.pop()
deque.append(element)
: 엘리먼트를 데크의 오른쪽 끝에 삽입
deque.appendleft(element)
: 엘리먼트를 데크의 왼쪽 끝에 삽입
deque.pop()
: 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제
deque.popleft()
: 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제
deque.extend(array)
: 주어진 배열(array)을 순환하면서 데크의 오른쪽에 추가
deque.extendleft(array)
: 주어진 배열(array)을 순환하면서 데크의 왼쪽에 추가
deque.remove(element)
: 엘리먼트를 데크에서 찾아 삭제
deque.rotate(num)
: 데크를 num만큼 회전(양수면 오른쪽, 음수면 왼쪽)