웹개발/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) 원칙을 따르도록 하는 핵심적인 메서드들입니다

 

스택의 요소들은 맨 위의 요소만 직접 접근할 수 있습니다. 이는 배열이나 리스트와 달리 중간의 요소를 직접 참조할 수 없습니다. 이러한 제한은 특정 알고리즘을 구현할 때 유용하게 사용됩니다.