양쪽 끝에서 삽입과 삭제가 전부 가능하다.
배열을 이용하여 덱을 직접 구현해보자.
const int MX = 1000005; // 최대 크기
int dat[2*MX+1]; // 원소 저장 배열
int head = MX, tail = MX; // 각각 덱의 앞쪽과 뒤쪽을 가리킬 변수
void push_front(int x) { dat[--head] = x; }
void push_back(int x) { dat[tail++] = x; }
int pop_front() { head++; }
void pop_back() { tail--; }
int front() { return dat[head]; }
int back() { return dat[tail - 1]; }
// 배열 속 원소들을 가리키며 이동하면서 데이터를 변경/삭제하지 않고도 해당 기능을 구현할 수 있다.