스택
- 후입선출 (LIFO: Last-In First-Out)의 형태로 제한되는 자료구조
추상화 (Abstraction)
- 새로운 자료형을 정의하려면 그 자료형의 자세하고 복잡한 내용 대신에 필수적이고 중요한 특징만 골라서 단순화시키는 작업
- 추상 자료형(ADT: Abstract Data Type): 추상화를 통해 정의한 자료형
peek vs pop
- peek: pop과 비슷하게 상단 요소를 반환하지만, 연산 후에도 스택의 상태는 변하지 않는다.
- peek 대체 = pop으로 꺼내서 확인한 후 push 다시 넣으면 원래 상태 유지
isEmpty vs isFull
- isEmpty: 스택의 공백 상태 검사
- isFull: 스택의 포화 상태 검사
overflow vs underflow
- overflow: 포화 상태인 스택에 새로운 요소를 삽입하는 경우
- underflow: 공백 상태의 스택에서 pop이나 peek을 호출하면 삭제나 참고가 불가하여 언더플로 발생
스택을 구현하는 방법
- 배열 구조: 자료들을 배열에 모아 저장하는 방법으로, 모든 요소는 인접한 메모리 공간에 저장된다.
장점: 크기가 고정된 일반 공책과 비슷하여 각 페이지를 쉽게 찾아 편리하게 사용 가능
단점: 공책이 가득 차면 더는 저장 불가능 - 연결된 구조: 인접한 메모리 공간이 아니라 흩어져 있는 요소들을 연결하여 하나로 관리하는 방법
장점: 바인더 공책처럼 페이지의 위치를 바꾸거나 새로운 페이지를 쉽게 추가하고 삭제할 수 있어 배열 구조보다 유연하게 사용 가능
단점: 관리하기 복잡하다