📌 스택 (Stack)
스택 은 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조이다.
LIFO (Last In - First Out) 순서이므로 마지막으로 들어온 값이 제일 먼저 나간다.
쉽게 이해할 수 있는 예는 감자칩이다. 순서대로 쌓인 감자칩이 스택 구조와 같다.
감자칩을 먹고 싶으면 제일 위에 있는 감자칩부터 먹기 시작하여 가장 밑에 있는 갑자칩은 가장 마지막에 먹기때문이다.

스택은 추가(Push)/ 삭제(Pop)가 Top이라는 스택 한쪽 끝에서만 일어난다.
- Push : 스택 맨 위에 데이터 추가
- Pop : 스택 맨 위에 데이터 삭제
- isEmpty : 스택이 비어있는지 확인
- isFull : 스택이 가득 차 있는지 확인
- getSize : 스택에 있는 요소 수를 반환
스택 구현 방법
- 배열(Array)
- 장점 : 구현이 쉽다.
- 단점 : 크기가 동적이 아니기 때문에 필요에 따라 확장/축소되지 않는다.
- 연결 리스트(Linked List)
- 장점 : 필요에 따라 크기가 확장/축소가 가능하다.
- 단점 : 포인터를 위한 추가 메모리 공간이 필요하다.
스택 장점
- 구조가 단순하기 때문에 구현이 쉽다.
- 데이터 저장,읽기 속도가 빠르다.
스택 단점
- 데이터 최대 사이즈를 미리 정해야 한다.
- 저장 공간의 낭비가 발생할 수 있다.
참고
https://yoongrammer.tistory.com/45?category=956616