JAVA

Deque

고민말고생각하는사람 2024. 7. 17. 19:27

Deque

double Ended Queue 의 약어이다.

 

구현체

Deque의 대표적 구현체는

- ArrayDeque

- Linkedlist 등이 있다.

 

Stack Vs Deque

Queue는 뒤에서 넣으면 앞으로 나오는 구조를 갖고 있는데,

한쪽에서는 넣고, 한쪽에서 빼기만 하면 역할은 명확하나, 유연성이 떨어진다.

양방향에서 넣고, 빼고 넣을 수 있는 Queue. 그것이 Deque 이다.

 

앞선 글에서 Stack 쓸 바에 Deque 쓰는 게 낫다. 라고 했는데

그 이유는 아래와 같다.

  • 앞서 말했듯, Stack은 Vector 자료구조를 상속한다. Vector 는 옛 언어들과의 호환성을 위해 만들어진 것으로, 이제 쓰이지 않는다.
  • 앞, 혹은 뒤에서만 넣기, 빼기를 한다는 것은 Stack 의 Last In First Out 과 다를 바가 없다.

따라서, 스택의 성질을 띄면서 보다 유연한 자료구조. Deque 를 사용하는 것이 더 좋다.