Python을 주로 사용해왔지만, 개발자로 제대로 성장하기 위해서 Java를 공부했다.
자료구조로 중요하게 사용되는 Stack과 Queue를 Java기반으로 정리해보았다!
(코딩 테스트도 Java로 볼 생각이다...! Django 배우고 어느정도 능숙해지면 Spring도 독학할 계획!)
물건을 쌓아 올리듯 자료를 쌓아 올린 형태의 자료구조이다.
스택에 저장된 자료는 선형구조를 가진다.
스택에 자료를 삽입하거나 스택에서 자료를 꺼낼 수 있다.
후입선출(LIFO, Last-In-First-Out)
자료를 선형으로 저장할 저장소
스택에서 마지막 삽입된 원소의 위치를 top
이라 부른다.
연산
삽입 push
: 저장소에 자료를 저장한다.
삭제 pop
: 저장소에서 자료를 꺼낸다. 삽입한 자료의 역순이다.
isEmpty
: 스택이 공백인지 아닌지 확인하는 연산
peek
: 스택의 top에 있는 items(원소)를 반환하는 연산. 원소제거X
Stack 코드 예시)
import java.util.Stack;
public class St1_StackAPITest {
public static void main(String[] args){
Stack<String> stack = new Stack<String>();
// stack.push("이동욱");
// stack.pop();
// stack.peek();
// stack.size();
}
}
Ctrl
+ Shift
+ O
: 현재 사용하는 기능의 패키지를 추가 & 사용안하고있는데 불러온 패키지 제거 (정리)Stack 응용 예시)
브라우저 구현
표준 웹 브라우저는 방문한 페이지 내에서 이전, 이후 페이지를 방문하는 기능이 있다.
선형자료구조
선입선출구조(FIFO, FIrst-In-First-Out)
java.util.Queue
java.util.PriorityQueue