스택

- 후입선출(LIFO, Last In First Out)

- 추상적 자료구조(ADT)

- 배열이 수직으로 쌓여있는 것

- 요소의 추가 및 삭제는 맨 위에서만 차례대로 가능

- ex) 웹 뒤로가기, ctr+z 실행취소 등

- push: 자료를 넣는 것 / pop: 넣어둔 자료를 꺼내는 것

 

스택 연산

- peek(): 스택의 가장 윗 데이터 반환 / 0(1)

- pop(): 스택의 가장 윗 데이터 삭제 / 0(1)

- push(): 스택의 가장 윗 데이터 자리 위에(top = top+1) 메모리 생성, 데이터 x 추가 / 0(1)

- empty(): 스택이 비어있으면 1, 그렇지 않다면 0 반환 / 0(1)

import java.util.Stack;

public class Solution {
    public static void main(String[] args) {
        // 스택 생성
        Stack<Integer> stack = new Stack<>();

        // 스택에 요소 추가
        stack.push(10);
        stack.push(20);
        stack.push(30);
        stack.push(40);

        // 스택 가장 위에 있는 요소 출력
        System.out.println("peek: " + stack.peek());

        // 스택 출력
        System.out.println("stack1: " + stack);

        // 스택 가장 위에 있는 요소 삭제
        System.out.println("pop: " + stack.pop());

        // 스택 가장 위에 있는 요소 삭제 후 스택 재출력
        System.out.println("stack2: " + stack);
    }
}

 

+ Recent posts