본문 바로가기

자료구조

[자료구조] Deque(Double-Ended Queue)

728x90

Deque(덱, Double-Ended Queue)란?

양쪽(앞, 뒤)에서 삽입과 삭제가 모두 가능한 큐이며 스택과 큐의 특성이 동시에 있는 자료구조입니다.

 

Deque 특징

1. 앞, 뒤로 삽입, 삭제 가능

일반적인 큐는 한 쪽으로만 삽입이 가능하고 반대편으로 삭제만 가능했다면 Deque는 양 옆으로 삽입, 삭제가 가능한 자료구조입니다.

 

2. 빠른 연산 속도

일반적으로 LinkedList 또는 Array로 구현되며 삽입/삭제 연산이 O(1)로 수행됩니다.

 

3. 두 가지 형태로 사용 가능

  • Stack
  • Queue

 

Deque 주요 연산

연산 설명
pushFront(element) 앞쪽에 요소 추가
pushBack(element) 뒷쪽에 요소 추가
popFront() 앞쪽 원소 제거 및 반환
popBack() 뒷쪽 원소 제거 및 반환
peekFront() 앞쪽 원소 확인(제거하지 않음)
peekBack() 뒷쪽 원소 확인(제거하지 않음)
isEmpty() 비어 있는지 확인(true/false)
size() 저장한 요소 개수 반

 

 

구현 2가지 방식 장단점

1. 배열 기반 Deque

고정된 크기의 배열을 사용하여 Dequq 구현

배열의 앞, 뒤에 삽입/삭제를 해야하기 때문에 요소를 이동해야 하는 단점이 존재

 

2. LinkedList 기반 Deque

이중 연결 리스트를 사용하여 구현

노드를 앞, 뒤에서 추가, 삭제가 가능

메모리 사용량이 증가(포인터를 저장하기 위한 공간)

728x90

'자료구조' 카테고리의 다른 글

[자료구조] 여러가지 배열 종류  (0) 2024.10.31
[자료구조] 큐(Queue)  (0) 2024.10.12
[자료구조] 스택(Stack) Java 예제 포함  (1) 2024.10.11
[자료구조] Array 배열  (0) 2024.08.16
[자료구조] Linked List  (0) 2024.08.15