📝스택의 정의
스택이란 데이터들을 차곡차곡 쌓아 올린 형태의 자료구조
🎯스택의 특징
- 가장 최근에 들어온 데이터가 가장 먼저나가는 후입선출(LIFO: Last In First Out)이다.
- 리스트의 Top에서 삽입과 삭제가 가능하다.
- 웹 브라우저 뒤로가기, 실행 취소, 역순 문자열 만들기, 역폴란드 표기법 등에서 사용된다.
스택의 연산

pop() : 스택에서 가장 위에 있는 데이터를 제거
push() : 데이터를 스택의 가장 윗 부분에 추가
top() : 스택의 가장 위에 있는 항목을 반환
isEmpty() : 스택에 원소가 없으면 true, 있으면 false 반환
isFull() : 스택에 원소가 없으면 false, 있으면 true 반환
스택의 구현
1. 정적 구현 - 1차원 배열 사용
- 장점 : 구현이 간단하고 빠르다.
- 단점 : 스택에 저장할 수 있는 노드의 개수가 제한되고 스택 생성시 크기를 미리 지정해야 한다. 최대 저장 가능 개수를 늘리지 못하고 메모리 낭비가 심하다
2. 동적 구현 - 연결 리스트 사용
- 장점 : 크기가 제한되지 않는다.
- 단점 : 구현이 복잡하고 삽입/삭제하는 시간이 오래 걸린다.
참고자료