데이터를 쌓아 올리는 구조입니다.
상자에 물건을 담으면 가장 마지막에 담은 물건을 가장 먼저 꺼내는 것처럼 스택도 마지막에 담은 데이터를 가장 먼저 사용합니다.
이러한 자료구조의 특성을 LIFO(Last In First Out)라고 합니다.
Push, 삽입 : 가장 위에 데이터를 삽입합니다.
Pop, 삭제 : 가장 위의 데이터를 삭제하면서 값을 반환합니다.
Peek, 읽기 : 가장 위의 데이를 반환합니다.
삽입 : O(1)
삭제 : O(1)
탐색 : O(n)
출력 순서가 입력 순서의 연순으로 이루어질 때 사용하기 좋습니다.
※ stack underflow : 비어있는 스택에서 원소를 추출하는 상황
※ stack overflow : 스택이 넘치는 상황