Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MariaDB
- 인텔리제이
- auditing
- 개발자
- 프로젝트 생성
- 엔티티 설계
- validated
- 백엔드공부
- Swagger
- Java
- JPA
- 유효성검사
- 스프링 부트 핵심 가이드
- DAO 연동 컨트롤러 서비스 설계
- 리포지토리 인터페이스
- 제로베이스
- #devops #terraform #state
- DAO 설계
- 백엔드스쿨
- 스프링부트실전가이드
- ORM
- 제로베이스 #백엔드 #Java #Spring #개발자 #백엔드공부 #백엔드 스쿨
- spring
- 데이터베이스 연동
- 백엔드
Archives
- Today
- Total
JeongJin's Blog
데크의 개념과 자바로 구현해보기 본문
1. 데크란?
- Stack와 Queue를 합친 상태
2. 데크 기능
- 양방향에서 삽입 삭제 가능한 구조
- 데이터 삽입 함수 : add() (addLast와 동일), offer() (offerLast와 동일), addFirst(), addLast(), offerFirst(),
offerLast()
- 데이터 삭제 함수 : remove(), poll(), removeLast(), pollLast()
- 데크 공간이 비어 있을 시 예외 반환 함수 : add(), remove()
- 데크 공간이 비어 있을 시 false 또는 null 반환 함수 : offer(), poll()
3. 일부 기능 제한 데크
- 입력제한 데크(Scroll)
- 한 쪽의 입력을 제한한 데크
- 출력제한 데크 (Shelf)
- 한 쪽의 출력을 제한한 데크
- 직접 사용할 경우는 없겠지만 개념정도 알아두면 좋을 거 같다.
import java.util.ArrayDeque;
import java.util.Deque;
public class Main {
public static void main(String[] args) {
Deque deque = new ArrayDeque();
// Front 부분 입력
deque.addFirst(1);
deque.addFirst(2);
deque.addFirst(3);
System.out.println(deque); // [3, 2, 1]
// Rear 부분 입력
deque.addLast(10);
deque.addLast(20);
deque.addLast(30);
System.out.println(deque); // [3, 2, 1, 10, 20, 30]
// Front 부분 출력
System.out.println(deque.removeFirst()); // 3
System.out.println(deque); // [2, 1, 10, 20, 30]
// Rear 부분 출력
System.out.println(deque.removeLast()); // 30
System.out.println(deque); // [2, 1, 10, 20]
System.out.println(deque.removeLast()); // 20
System.out.println(deque.removeLast()); // 10
System.out.println(deque.removeLast()); // 1
System.out.println(deque.removeLast()); // 2
System.out.println(deque); // []
System.out.println(deque.pollLast()); // null
System.out.println(deque.removeLast()); // NoSuchElementException
}
}
'1일1공부 > 선형자료구조' 카테고리의 다른 글
해시 테이블 개념과 자바로 구현해보기 (0) | 2023.09.13 |
---|---|
큐의 개념과 자바로 구현해보기 (0) | 2023.09.12 |
스택의 개념과 자바로 구현해 보기 (0) | 2023.09.12 |
연결리스트 개념 알아보기 (0) | 2023.09.11 |
배열의 개념과 자바로 구현해 보기 (0) | 2023.09.11 |