ArrayList로 stack 만들기

박병주·2023년 2월 20일
0

Java

목록 보기
5/7

Stack?

스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다.
접근의 방법은 언제나 목록의 끝에서만 일어난다.

스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)로 되어 있다.
대학 시절 교수님은 LIFO는 택시기사 동전통이라 생각하라고 하셨다...

자료를 밀어 넣는 Push, 자료를 꺼내는 Pop 동작이 있다.

import java.util.ArrayList;
import java.util.List;

public class MyStack {
    private List<String> arrayStack = new ArrayList<>();

    public void push(String data){
        arrayStack.add(data);
    }

    public String pop(){
        int len = arrayStack.size();
        if(len==0){
            System.out.println("스택이 비어있습니다.");
            return null;
        }

        return(arrayStack.remove(len-1));
    }

    public static void main(String[] args) {
        MyStack stack = new MyStack();
        stack.push("A");
        stack.push("B");
        stack.push("C");

        stack.pop();
        stack.pop();
        stack.pop();
    }
}

이렇게 열심히 스택을 만들었지만,
java.util에서 스택기능을 지원하고 있다.

import java.util.Stack;

public class stack {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);

        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack.pop());
    }
}

refer : https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D

profile
응애

0개의 댓글