개발콩블로그

[자료구조] Stack 본문

자료구조\알고리즘

[자료구조] Stack

devBean 2025. 3. 29. 00:24

안녕하세요 개발콩입니다 !! 😆

오늘은 자료구조 Stack에 대해 정리하도록 하겠습니다.

 

 

Stack

한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO, FILO 형식의 자료구조입니다.

 

 

우리가 주로 먹는 프링글스 과자를 생각하면 이해하기 쉬울 것 같아요.

 

우리는 과자를 먹을 때 가장 위에 있는 과자를 먹게되고, 과자를 다시 넣게 된다면 제일 위에 넣게 되죠.

즉, 우리는 과자를 꺼낼 때 가장 마지막에 넣었던 과자를 먹게됩니다!

 

 

 

Stack의 메서드

  • push
    • 스택에 데이터를 추가합니다.
  • pop
    • 가장 마지막에 들어온 데이터를 제거합니다.
  • top
    • 가장 마지막에 들어온 데이터를 확인합니다.

 

 

 

 

Stack의 시간복잡도

push O(1)
pop O(1)
top O(1)

 

 

 

 

스택 오버플로우

스택에서 사용 가능한 것보다 더 많은 공간을 사용하는 경우

 

 

스택 언더플로우

스택에서 데이터가 없는 상태에서 삭제를 시도하는 경우

 

 

 

사용방법

우리는 Swift언어에서 기본 제공하는 ArrayList를 활용해 Stack을 구현하지 않고 쉽게 사용할 수 있습니다!

push append
pop popList() -> Self.Element? / removeList() -> Self.Element
top last

 

'자료구조\알고리즘' 카테고리의 다른 글

[자료구조] Hash Table  (0) 2025.04.25
[알고리즘] Sort  (0) 2025.04.20
[자료구조] Queue  (0) 2025.04.04
[자료구조] Array, ArrayList, Linked-List  (0) 2025.03.23