728x90
- Front와 Rear 양쪽에서 삽입(enQueue)과 삭제(deQueue)가 가능한 자료 구조
- Deque의 앞쪽으로 삽입하고, 뒤쪽으로 삭제하면 Queue처럼 사용할 수 있다. Deque의 앞쪽에 삽입하고 다시 앞쪽으로만 삭제하면 Stack처럼 사용할 수 있다.
⬛ 연산
- addFirst(x) : 데이터 x를 덱의 Front에 추가, 용량을 초과하면 exception 발생
- push(x)와 동일 → 덱을 스택으로 사용하고자 할 때 사용됨
- offerFirst(x) : 데이터 x를 덱의 Front에 추가, 용량을 초과하면 false를 리턴
- removeFirst() : 덱의 Front에 있는 데이터 삭제, 비어있으면 Exception 발생
- pop()과 동일 → 덱을 스택으로 사용하고자 할 때 사용됨
- remove()와 동일
- poll() : 덱의 Front에 있는 데이터를 삭제, 비어있으면 null 리턴
- addLast(x) : 데이터 x를 덱의 Rear에 추가, 용량을 초과하면 Exception 발생
- add(x)와 동일
- offerLast(x) : 데이터 x를 덱의 Rear에 추가, 용량을 초과하면 false를 리턴
- offer(x)과 동일
- removeLast() : 덱의 Rear에 있는 데이터를 삭제, 비어있으면 Exception 발생
- pollLast() : 덱의 Rear에 있는 데이터를 삭제, 비어있으면 null 리턴
- getFirst() : 덱의 First에 있는 데이터를 삭제하지 않고 리턴, 비어있으면 Exception 발생
- getLast() : 덱의 Rear에 있는 데이터를 삭제하지 않고 리턴, 비어있으면 Exception 발생
- peekFirst() : 덱의 First에 있는 데이터를 삭제하지 않고 리턴, 비어있으면 null 리턴
- peek()과 동일
- peekLast() : 덱의 Rear에 있는 데이터를 삭제하지 않고 리턴, 비어있으면 null 리턴
Deque<Integer> dq = new LinkedList<>();
dq.addFirst(1);
dq.addLast(2);
System.out.println(dq);
System.out.println(dq.peekFirst());
System.out.println(dq.peekLast());
dq.removeFirst();
dq.removeLast();
System.out.println(dq);
//[1, 2]
//1
//2
//[]
728x90
'공부의 기록 > Data Structure' 카테고리의 다른 글
[자료 구조] Tree & Binary Tree의 개념 설명 (0) | 2022.03.02 |
---|---|
[자료 구조] Hash의 개념 설명 (0) | 2022.02.11 |
[자료 구조] Heap의 개념 설명과 구현 (0) | 2022.02.03 |
[자료 구조] Queue 개념 설명과 구현 (0) | 2022.02.02 |
[자료 구조] Stack 개념 설명과 구현(배열, 연결리스트) (0) | 2022.01.31 |