스택이란?
- 객체가 저장되는 "순서"를 기억하는 추상 자료형.
- 긴 통 안에 물건을 차곡차곡 쌓고 맨 아래 물건을 꺼내고 싶을 때 위에서 부터 차례대로 꺼내야하는 것처럼 순서대로 진행하지만 꺼낼 때는 역방향인 후입선출(Last In First Out) 유형.
- 스택의 크기는 유한함. -> 메모리 크기와 관계있기 때문.
스택 추상 자료형
스택 생성
JavaScript.
const stack_size = 10;
const stack[stack_size];
let top = -1; // 넣을 수 있는 부분.
스택 삽입
const push = (stack, top, item) => {
if (top >= stack_size - 1) {
return isFull();
} else {
stack[++top] = item;
}
}
- top의 위치와 스택사이즈가 같으면 가득 찼다는 의미로 isFull()출력.
- top이 가리키고 있는 곳에서 한 칸 위로 올라가서 item지정.
스택 삭제
const pop = (stack, top) => {
if (top === -1) {
return isEmpty();
} else {
stack[top--] = null;
}
}
- top을 이용해 스택이 비었는지 확인하고 아니면 null지정.
- C언어라면 stack[(*top)--]; 으로 작성해서 주소값을 감소시킴.