자료구조에는 여러가지 ADT가 있으며 대표적으로
Stack, Queue, Tree, Graph 등이 있다.
오늘은 Stack에 관한 내용이다.
Stack은 LIFO의 성질을 가지는 자료구조이다.
LIFO란 Last In First Out의 약자로 가장 늦게 들어온 것이
가장 빨리 나간다는 의미이다.
이것이 어디에 사용되는지 간단하게 설명하자면, 
이러한 슈도 코드가 있을 때 실행을 하면
main함수가 먼저 실행 될 것이다.
main 함수 내에서 Hello 함수를 호출하고,
Hello 함수는 또 name함수를 호출 한다.
그리고 함수의 종료는 역순으로 name->Hello->main 이 될 것이다.

이렇게 함수배열에 쌓일 것이다.
이렇게 가장 늦게 들어온 데이터가 가장 빨리 나가야 하는 상황에서 우리는 Stack을 사용하게 된다.


Stack을 추상자료형으로 정의할 때 기본적으로 5가지의 명령을 지원한다(개인의 구현에 따라 달라짐).

사진 출처: https://images.app.goo.gl/WeZGFEMys2cD2GaL7
https://images.app.goo.gl/pSrJ32fKCbkAoNxp9