Study/개념 정리
[Study] Stack
chobbo
2024. 7. 11. 09:58
Stack이란?
- LIFO 구조의 자료구조
- 가장 최근에 들어온 데이터가 가장 나중에 나가는 자료구조이다.
- 아래 사진과 같은 구조를 가짐
더보기
Stack은 Last In First Out 구조를 가지는 자료구조이다.
Stack에 데이터를 Push하면 데이터는 스택 상단에 쌓인다.
데이터를 Pop하면 스택 상단에 있는 데이터가 삭제된다.
즉 가장 최근에 들어온 데이터가 가장 나중에 나가는 자료구조이다.
Stack은 언제 사용하면 좋을까?
- 문서 편집기의 Undo 기능과 같이 바로 직전에 실행했던 작업을 취소시킬 때 사용된다.
- 데이터를 추가할 때 배열처럼 원소를 하나씩 옆으로 밀어줄 필요가 없다.
- 재귀 알고리즘을 사용하는 경우 유용하다.
- C/C++의 main() 함수안에서 사용되는 지역변수와 함수들은 모두 스택의 자료구조에 의하여 관리된다.
- 후위표기 계산식에서도 활용된다.
반대로 언제 사용하기 불리할까?
- 스택은 i번째 항목에 접근할 수 없다.
- 배열 기반이라 데이터 최대 개수를 미리 정해야 한다. 이때 메모리 낭비가 발생할 수 있다.