그림 5-1을 보면, 맨 마지막에 쌓인 데이터인 3이 맨 처음 출력되는 것을 알 수 있지요. 먼저 스택의 ADT를 정의한 후 어떻게 객체를 표현하고 연산을 구현할지 고민해 봅시다.
Stack
- Object
: LIFO 객체
- Operation
1. empty( ) -> Boolean
: 스택이 비어 있으면 TRUE, 아니면 FALSE 반환
2. push(data)
: data를 스택의 맨 위에 삽입
3. pop( ) -> element
: 스택의 맨 위에 있는 데이터를 삭제하며 반환
4. peek( ) -> element
: 스택의 맨 위에 있는 데이터를 반환만 함