웹개발/java
[자바자료구조]스택(Stack)
지구별 여행자 임탱
2024. 3. 7. 22:59
728x90
자바에서 스택(Stack)은 데이터를 저장하는 데 사용되는 자료구조 중 하나입니다.
스택은 'LIFO'(Last In First Out) 원칙을 따르는데, 이는 가장 최근에 들어간 데이터가 가장 먼저 나오는 방식을 의미합니다.
자바에서 스택을 사용하려면 'java.util.Stack' 클래스를 사용합니다.
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
// 스택에 요소 추가
for (int i = 0; i < 5; i++) {
stack.push(i);
}
// 스택에서 요소 제거 및 출력
while (!stack.empty()) {
System.out.println(stack.pop());
}
}
}
이 코드는 0부터 4까지의 숫자를 스택에 추가한 후, 하나씩 제거하며 출력하는 예제입니다.
스택에서 push와 pop 메서드는 스택의 기본 동작을 수행하는 역할을 합니다.
push: 이 메서드는 스택의 맨 위에 새로운 요소를 추가합니다. push 메서드를 호출하면 인자로 전달된 요소가 스택의 최상단에 위치하게 됩니다. 예를 들어, stack.push(10);은 숫자 10을 스택의 맨 위에 추가합니다.
pop: 이 메서드는 스택의 맨 위에 있는 요소를 제거하고 그 요소를 반환합니다. 스택이 비어있을 경우 pop 메서드를 호출하면 EmptyStackException이 발생합니다. 예를 들어, int top = stack.pop();은 스택의 맨 위에 있는 요소를 제거하고 그 값을 변수 top에 저장합니다.
이 두 메서드는 스택이 'LIFO'(Last In First Out) 원칙을 따르도록 하는 핵심적인 메서드들입니다
스택의 요소들은 맨 위의 요소만 직접 접근할 수 있습니다. 이는 배열이나 리스트와 달리 중간의 요소를 직접 참조할 수 없습니다. 이러한 제한은 특정 알고리즘을 구현할 때 유용하게 사용됩니다.