일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Mendix
- 정렬
- 멘딕스
- 알고리즘
- lcap
- 스택
- 해시맵
- domain model
- 매개변수 탐색
- 반효경교수님
- 완전탐색
- 트리
- MySQL
- 자료구조
- 프로그래머스
- SQL
- Recursion
- 집합
- 이분탐색
- 그래프
- algorithm
- git
- 자바
- Bruteforce
- microflow
- 가중치없는그래프
- 백트래킹
- 재귀
- Sort
- dfs
- Today
- Total
mondegreen
스택(Stack)과 큐(Queue) 본문
Stack(스택)
선형의 자료구조로서 후입선출(LIFO)의 특징을 가진다.
자료의 삽입: push / 자료의 삭제: pop / 가장 상단의 값: top / 가장 상단 값 반환: peek / 스택의 크기: size
Stack<Integer> stk = new Stack<>();
라이브러리가 존재하여 다른 자료구조로 구현할 필요가 없음
Queue(큐)
선형의 자료구조로서 선입선출(FIFO)의 특징을 가진다. 중간에 원소삽입이 불가하며 뒤쪽으로 순서대로 자료를 삽입할 수 있다. LinkedList로 구현한다.
자료의 삽입: offer / 자료의 삭제: poll / 제일 마지막 값 반환: peek / 스택의 크기: size
** 큐의 매서드
add, remove, element는 예외를 발생시킴 offer, poll, peek은 값을 리턴
add : 새로운 원소 추가에 실패하면 IllegalStateException 발생
offer: 새로운 원소 추가 실패하면 -> false
remove: 큐에 원소가 없을 때 NoSuchElementException 예외 발생 -> 예외처리하고 싶을 때 사용
poll: 원소가 없으면 null 반환
element: 큐에 원소가 없을 때 NoSuchElementException 예외 발생 -> 예외처리하고 싶을 때 사용
peek: 원소가 없으면 null 반환
deque(데크/텍)
Double Ended Queue의 줄임말로 큐의 양쪽에서 삽입과 삭제를 수행할 수 있도록 한 자료구조
Deque<Integer> deque = new LinkedList<>();
위와 같이 구현 가능하다.
데이터 삽입
add():
마지막에 원소 삽입 / 용량 초과 시 예외 발생
addFirst():
맨 앞에 원소 삽입 / 용량 초과 시 예외 발생
addLast():
마지막에 원소 삽입 / 용량 초과 시 예외 발생
offer():
마지막에 원소 삽입 / 삽입 성공 시 true, 용량 제한에 걸리는 경우 false 반환
offerFirst():
맨 앞에 원소 삽입 / 삽입 성공 시 true, 용량 제한에 걸리는 경우 false 반환
offerLast():
마지막에 원소 삽입 / 삽입 성공 시 true, 용량 제한에 걸리는 경우 false 반환
데이터 삭제
remove(): 맨 앞의 원소 제거 후 해당 원소를 리턴 / 덱이 비어있는 경우 예외 발생
removeFirst():
맨 앞의 원소 제거 후 해당 원소를 리턴 / 덱이 비어있는 경우 예외 발생
removeLast():
마지막 원소 제거 후 해당 원소를 리턴 / 덱이 비어있는 경우 예외 발생
poll():
맨 앞의 원소 제거 후 해당 원소를 리턴 / 덱이 비어있는 경우 null 리턴
pollFirst():
맨 앞의 원소 제거 후 해당 원소를 리턴 / 덱이 비어있는 경우 null 리턴
pollLast():
마지막 원소 제거 후 해당 원소를 리턴 / 덱이 비어있는 경우 null 리턴
데이터 확인
getFirst():
맨 앞의 원소를 리턴 / 덱이 비어있는 경우 예외 발생
getLast():
마지막 원소를 리턴 / 덱이 비어있는 경우 예외 발생
peek():
맨 앞의 원소를 리턴 / 덱이 비어있는 경우 null 리턴
peekFirst():
맨 앞의 원소를 리턴 / 덱이 비어있는 경우 null 리턴
peekLast():
마지막 원소를 리턴 / 덱이 비어있는 경우 null 리턴
'알고리즘 풀이 및 리뷰 > 알고리즘 이론' 카테고리의 다른 글
트리 (0) | 2023.06.16 |
---|---|
연결리스트(LinkedList) (0) | 2023.06.05 |
부분집합(Subset) (0) | 2023.06.05 |
조합(Combination; 순서 X 중복 X) (0) | 2023.06.05 |
순열(Permutation; 순서 O 중복 X) (0) | 2023.06.05 |