열심히 살아나갈 사람

자바에서 스택(Stack)은 java.util 패키지에 있는 Stack 클래스를 통해 사용할 수 있습니다. 스택은 'Last In, First Out'(LIFO)의 특성을 가진 자료구조로, 가장 마지막에 들어온 요소가 가장 먼저 나가는 구조를 가지고 있습니다.

Stack 클래스의 주요 메소드들:

  • E push(E item): 스택의 맨 위에 요소를 추가하고, 그 요소를 반환합니다.
  • E pop(): 스택의 맨 위에 있는 요소를 제거하고, 그 요소를 반환합니다. 스택이 비어있는 경우 EmptyStackException을 발생시킵니다.
  • E peek(): 스택의 맨 위에 있는 요소를 반환합니다. 스택이 비어있는 경우 EmptyStackException을 발생시킵니다.
  • boolean empty(): 스택이 비어있는 경우 true를, 그렇지 않은 경우 false를 반환합니다.
  • int search(Object o): 스택에서 주어진 객체의 위치를 반환합니다. 스택의 맨 위부터 아래로 찾으며, 맨 위의 위치는 1입니다. 주어진 객체가 스택에 없는 경우 -1을 반환합니다.

다음은 Java에서의 Linked List를 생성하고 사용하는 기본적인 예시입니다:

import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();

        // 요소 추가
        stack.push(1);
        stack.push(2);
        stack.push(3);
        System.out.println(stack);  // 출력: [1, 2, 3]

        // 요소 제거
        int popped = stack.pop();
        System.out.println(popped);  // 출력: 3
        System.out.println(stack);  // 출력: [1, 2]

        // 요소 확인
        int peeked = stack.peek();
        System.out.println(peeked);  // 출력: 2
        System.out.println(stack);  // 출력: [1, 2]

        // 요소 검색
        int position = stack.search(1);
        System.out.println(position);  // 출력: 2
    }
}

이 예제에서는 Stack 클래스의 주요 메소드들을 사용하여 스택에 요소를 추가하거나 제거하고, 특정 요소를 확인하거나 검색하는 방법을 보여주고 있습니다.

스택은 다양한 알고리즘에서 활용됩니다. 예를 들어, 깊이 우선 탐색(DFS), 백트래킹, 문자열 역순 출력 등에서 스택을 사용할 수 있습니다. 또한, 함수의 호출 스택을 관리하는 데에도 사용됩니다.

간단하게 문자열을 역순으로 출력하는 예시입니다:

import java.util.Arrays;
import java.util.Stack;

public class test {
	public static void main(String[] args) {
		Stack<String> stack = new Stack<>();
		stack.push("A");
		stack.push("B");
		stack.push("C");
		stack.push("D");
		String[] list = new String[stack.size()];
		for(int i = 0; i < list.length; i++) list[i] = stack.pop();
		System.out.println(Arrays.toString(list));
	}
}

 

profile

열심히 살아나갈 사람

@쿼리_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!