본문 바로가기
Study/개념 정리

[Study] Stack

by chobbo 2024. 7. 11.

Stack이란?

- LIFO 구조의 자료구조

- 가장 최근에 들어온 데이터가 가장 나중에 나가는 자료구조이다.

- 아래 사진과 같은 구조를 가짐

 

더보기

Stack은 Last In First Out 구조를 가지는 자료구조이다.
Stack에 데이터를 Push하면 데이터는 스택 상단에 쌓인다. 
데이터를 Pop하면 스택 상단에 있는 데이터가 삭제된다.
즉 가장 최근에 들어온 데이터가 가장 나중에 나가는 자료구조이다.

 

 

 

Stack은 언제 사용하면 좋을까? 

- 문서 편집기의 Undo 기능과 같이 바로 직전에 실행했던 작업을 취소시킬 때 사용된다.

- 데이터를 추가할 때 배열처럼 원소를 하나씩 옆으로 밀어줄 필요가 없다.

- 재귀 알고리즘을 사용하는 경우 유용하다.

- C/C++의 main() 함수안에서 사용되는 지역변수와 함수들은 모두 스택의 자료구조에 의하여 관리된다.

- 후위표기 계산식에서도 활용된다.

 

 

 

 

반대로 언제 사용하기 불리할까?

- 스택은 i번째 항목에 접근할 수 없다.

- 배열 기반이라 데이터 최대 개수를 미리 정해야 한다. 이때 메모리 낭비가 발생할 수 있다.

 

'Study > 개념 정리' 카테고리의 다른 글

[Study] MonoBehaviour와 Unity 생명주기  (0) 2024.07.15
[Study] Queue  (0) 2024.07.12
[Study] LinkedList  (0) 2024.07.10
[Study] 제네릭 & 람다 & LINQ & Reflection  (0) 2024.07.09
[Study] GC  (0) 2024.07.08