자바 Stack Interface

bbangho·2023년 5월 14일
0

Stack

먼저 Stack에 대해서 알아보자.

Last in First out Lifo라고 부른다(후입선출).

무거운 책을 눕혀서 쌓는다고 생각해보자. 차곡차곡 책이 하나씩 쌓일것이고 제일 처음에 들어온 책은 맨 밑에 위치할 것이고 최근에 들어온 책은 가장 위에 위치할 것이다. 책을 빼고싶다면 위에서부터 하나씩 뺄것이다. 이게 Stack이다.

Stack의 활용

  1. 페이지 뒤로가기
  2. 실행 취소
  3. 수식 괄호 검사

홈페이지를 마구마구 뒤질때 그 전 페이지를 가고싶다면 뒤로가기를 누르면 된다. 가장 최근에 들어간 페이지를 Stack의 최상단에 위치하기 때문에 그것을 불러오면 된다.

Stack Interface Method Summary

자바 공식문서의 Method Summary이다.

Modifier and TypeMethodDescription
booleanempty()stack이 비어있는지 확인한다
Epeek()스택의 최상단(top)에 위치한 요소를 본다. 제거하지 않고
Epop()스택의 최상단에 위치한 요소를 제거하고 반환한다.
Epush(E item)스택의 최상단에 item을 push한다.
intsearch(Object o)1-based position을 반환한다.

1-based index 1부터 시작하는 indexing을 말한다.

Interface code

package interface_form;

public interface StackInterface <E>{

    /**
     *
     * @param item 스택에 추가된 요소
     * @return 추가된 요소
     */
    E push(E item);

    /**
     * 스택의 최상단에 위치한 요소 삭제
     * @return 삭제된 요소
     */
    E pop();

    /**
     * 스택의 최상단에 위치한 요소 반환
     * @return 요소반환
     */
    E peek();

    /**
     * 스택의 상단으로부터 특정요소가 몇번째에 위치했는지
     *
     * @param o 찾으려는 요소
     * @return 상단으로부터의 위치
     */
    /*
     *         ________
     *         | a    |
     * idx 3   |______|   search("w")
     *         | e    |   --> 상단(idx 3)으로 부터 3번 째에 위치
     * idx 2   |______|       == return 되는 값 : 3
     *         | w    |
     * idx 1   |______|
     *         | k    |
     * idx 0   |______|
     *
     */
    int search(Object o);

    /**
     * 스택이 비어있는지 확인한다.
     * @return 스택이 비어있으면 true , 스택이 비어있지 않으면 false
     */
    boolean empty();

    /**
     * 스택의 크기 반환
     * @return 스택의 크기
     */
    int size();

    /**
     * 스택을 비운다.
     */
    void clear();
}

https://github.com/Hodu-moon/DataStructure

profile
2024. 06.17

0개의 댓글