✍🏻기록하는 블로그

[ JAVA ] Stack의 정의 및 ArrayList로 Stack구현하기 본문

Language/Java

[ JAVA ] Stack의 정의 및 ArrayList로 Stack구현하기

쩐시킴 2020. 10. 4. 10:48
728x90

https://www.programiz.com/dsa/stack

 

Stack 

"쌓다"의 의미로 LIFO (Last In First Out) 가장 마지막으로 들어간 데이터가 가장 먼저 나오는 자료구조

stack은 queue(Interface)와 달리 클래스이다. Stack  myStack = new Stack(); 인스턴스를 생성하여 바로 사용하면 된다.

docs.oracle.com/javase/10/docs/api/java/util/Stack.html

 

Stack (Java SE 10 & JDK 10 )

 

docs.oracle.com

 

  • pop() : 마지막에 넣은 데이터를 꺼내기
  • push() : 새로운 데이터를 맨 위에 넣기
  • peek() : 마지막 데이터 확인
  • isEmpty() : 스택이 비었는지 확인
  • ArrayList, LinkedList로 구현 가능
  • 게임에서 무르기, 최근 자료 가져오기 기능 구현 시 사용

ArrayList를 이용하여 Stack 구현하기

class MyStack {

    private ArrayList<String> arrayStack = new ArrayList<String>();//arrayList로 스택 구현

    public void push(String data){ //push 가장 마지막에 데이터 넣기
        arrayStack.add(data);
    }

    public String pop(){
        int len = arrayStack.size();

        if(len == 0){
            System.out.println("스택이 비었습니다.");
            return null;
        }
        return arrayStack.remove(len - 1);
    }


}


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

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

    }
}

 

728x90
반응형