본문 바로가기
개발/자료구조

[자료구조] 스택(Stack) 이란?

by 난중후니 2022. 12. 29.
728x90
반응형

스택(Stack) 이란?

  • LIFO(Last In First Out) 구조로 마지막에 저장된 값이 첫번째로 꺼내와서 데이터를 사용하는 자료구조입니다.
  • 출력 순서가 입력 순서의 역순으로 이루어질 때 많이 사용됩니다.

ex) 뒤로가기, 실행 취소, 역순 문자열 만들기, 재귀 알고리즘 등..

Java 스택(Stack) 관련 메서드

  • push(E item): 해당 item을 Stack의 마지막에 저장 후 해당 item을 반환합니다.
  • pop(): Stack에서 가장 나중에 저장된 item을 삭제하고 해당 item을 반환합니다.
  • peek(): Stack의 가장 나중에 저장된 item을 반환합니다.
  • empty(): Stack이 비어있으면 true, 아니면 false를 반환합니다.
  • search(Object o): 해당 object의 위치를 반환합니다. 여기서 object는 item입니다.

예시)

        Stack<String> stack = new Stack<>();

        // stack이 비어있는지 확인합니다.
        System.out.println("stack empty >>> "+stack.empty());

        // chicken을 stack에 저장 후 해당 값을 반환합니다.
        System.out.println("stack push(chicken) >>> "+stack.push("chicken"));

        // pizza를 stack에 저장 후 저장이 됬으면 true, 실패한 경우 false를 반환합니다.
        System.out.println("stack add(pizza) >>> "+stack.add("pizza"));

        // pizza가 저장된 위치를 반환합니다.
        System.out.println("stack search(pizza) >>> "+stack.search("pizza"));

        // stack에 가장 최근 들어간 값을 반환합니다.
        System.out.println("stack peek >>> "+stack.peek());

        // stack에 가장 최근 들어간 값을 반환 후 해당 값을 제거합니다.
        System.out.println("stack pop >>> "+stack.pop());

        System.out.println("stack peek >>> "+stack.peek());

결과

stack empty >>> true
stack push(chicken) >>> chicken
stack add(pizza) >>> true
stack search(pizza) >>> 1
stack peek >>> pizza
stack pop >>> pizza
stack peek >>> chicken
728x90
반응형

댓글