Java 자료구조 - 스택(Stack)

김성규·2023년 2월 13일
0
post-thumbnail

스택(Stack)

  • 후입 선출 구조 (LIFO, Last In First Out)
  • 데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용
  • import java.util.Stack; 으로 import 후
    Stack stack = new Stack(); 으로 객체 생성 후 사용

스택 기본 연산

  • 데이터 추가 (push)
    stack.push(3)로 스택의 가장 마지막 위치에 데이터 추가

  • 데이터 꺼내기 (pop)
    stack.pop()으로 스택의 가장 마지막 위치에서 데이터 꺼냄

  • 스택의 맨위값 출력 (peek)
    stack.peek()로 스택의 가장 마지막에 넣은 데이터 조회 (삭제X)

  • 스택에 선택한 데이터를 가지고 있는지 (contains)
    stack.contains(1) => 1을 가지고 있는지 true나 false 출력

  • 스택의 사이즈 (size)
    stack.size()로 사용, 스택의 데이터 개수 출력

  • 스택이 비어있는지 (empty)
    stack.empty()로 스택에 값이 있는지 true나 false 출력

  • 스택 비우기 (clear)
    stack.clear()로 스택 비우기

시간 복잡도

문제를 해결하는데 걸리는 시간과 입력의 함수 관계 빅오 표기법으로 표기

Stack의 시간 복잡도

삽입 : O(1)
제거 : O(1)
탐색 : O(N)
접근 : O(N)

스택의 삽입과 제거는 항상 top에서만 일어나고
탐색과 접근은 특정 데이터를 찾을때까지 수행

profile
기록하는 습관

0개의 댓글