Skip to content

Latest commit

 

History

History
36 lines (23 loc) · 1.65 KB

Stack.md

File metadata and controls

36 lines (23 loc) · 1.65 KB

Stack 클래스란?

Stack은 LIFO 구조로 자주 쓰이는 대표적인 자료구조 입니다.

image

즉, 마지막에 들어온 애가 먼저 나간다라고 생각하면 됩니다. 스택은 보통 어디에서 쓰일까요?

  • Ctrl + Z를 할 때 되감기를 하려면 스택 구조로 저장을 하고 있어야 가장 최근꺼로 계속돌아갈 수 있을 것입니다.
  • 재귀함수를 호출하면 함수가 스택구조로 쌓이게 됩니다. 즉, 메모리에서도 스택 구조를 사용하고 있습니다.
  • 후위 표기법으로 표현된 수식을 연산할 때도 사용됩니다.
  • DFS 깊이 우선탐색에서 사용됩니다.

Stack 주요 메소드

  • push(): 원소를 스택에 넣는 메소드입니다.(급식실에서 식판을 쌓는거처럼 마지막에 들어간 게 제일 위에 위치하게 됩니다.)
  • pop(): 원소를 스택에서 꺼내는 메소드입니다. 즉, 맨 위에 메소드부터 꺼내게 됩니다.
  • peek(): pop()을 하지 않고 맨 위의 메소드를 반환하는 역할을 합니다.
  • isEmpty(): 현재 스택이 비어있는지 안비어있는지 true, false로 반환합니다.
  • search(Object o): 스택에 해당 객체의 위치를 반환합니다.

Stack 시간 복잡도

push() pop() peek() isEmpty() search()
O(1) O(1) O(1) O(1) O(n)

참고하기