
Double-ended Queue라는 의미로, 양쪽에서 모두 삽입과 삭제가 가능하여 자유도가 스택과 큐에비해서 높은 자료구조이다. 좀 더 유연한 스택, 큐 이다.
스택과 큐는 특수목적에서 사용되는 자료구조라는 느낌이 들었던 반면 자유도가 매우 높아진 데크의 경우에는 여러가지 용도에 부합되게 사용되어 효율성이 많이 증가하게 된다.
하지만 리스트와 다르게 중간의 데이터를 건드릴 수 없고, 양끝단만 건드릴 수 있다.
보통 스케줄링에 사용하게 되는데 스케줄링이 복잡해질수록 큐와 스택보다 데크가 더 효율적인 경우가 많다.
우선순위를 조절하게 될 때 예를들면 스택의 경우 초반에 넣어진 값의 우선순위를 높이고 싶은데 스택은 선입후출이다. 큐의 경우에도 후반에 넣어진 값의 우선순위를 높이고 싶은데 큐는 선입선출이다. 결국 양쪽으로 넣고 뺄 수 있는 데크가 이 조건을 충족하게 된다.