1. Stack(스택)
스택은 삽입과 삭제 연산이 후입선출(LIFO : Last-in first-out)로 이뤄지는 자료구조이다. 후입선출은 삽입과 삭제가 한 쪽에서만 일어나는 특징이 있다.
스택 용어
위치
- top : 삽입과 삭제가 일어나는 위치
연산
- push : top 위치에 새로운 데이터를 삽입하는 연산
- pop : top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산
- peek : top 위치에 현재 있는 데이터를 단순 확인하는 연산
스택은 깊이 우선 탐색(DFS : Depth First Search), 백트래킹 종류의 코딩 테스트에 효과적이므로 반드시 알아 두어야 한다. 후입선출은 개념 자체가 재귀 함수 알고리즘 원리와 일맥상통하기 때문이다.
2. Queue(큐)
큐는 삽입과 삭제 연산이 선입선출(FIFO : First-in First-out)로 이뤄지는 자료구조이다. 스택과 다르게 먼저 들어온 데이터가 먼저 나간다. 그래서 삽입과 삭제가 양방향에서 이뤄진다.
큐 용어
- rear : 큐에서 가장 끝 데이터를 가리키는 영역
- front : 큐에서 가장 앞의 데이터를 가리키는 영역
- add : rear 부분에 새로운 데이터를 삽입하는 연산
- poll : front 부분에 있는 데이터를 삭제하고 확인하는 연산
- peek : 큐의 맨 앞(front)에 있는 데이터를 확인할 때 사용하는 연산
큐는 너비 우선 탐색(BFS : Breadth First Search)에서 자주 사용하므로 이 역시도 스택과 함께 잘 알아두어야 하는 개념이다.
Tip. 우선순위 큐
우선순위 큐(Priority queue)는 값이 들어간 순서와 상관 없이 우선순위가 높은 데이터가 먼저 나오는 자료구조이다. 큐 설정에 따라 front에 항상 최댓값 또는 최솟값이 위치한다. 우선순위 큐는 일반적으로 힙(heap)을 이용해 구현하는데 힙은 트리 종류의 하나이다.
'학습 > Java' 카테고리의 다른 글
[Java] Optional - 사용 목적, 이점, 사용법 (1) | 2024.09.05 |
---|---|
Array & List (0) | 2023.02.22 |
자바 개발환경 구축 (JDK 17 설치) Window_2023.02.15 업데이트 (0) | 2021.05.31 |