[자료구조] - 스택

9999·2023년 1월 26일
0

CS

목록 보기
18/19

스택이란?


  • 객체가 저장되는 "순서"를 기억하는 추상 자료형.
  • 긴 통 안에 물건을 차곡차곡 쌓고 맨 아래 물건을 꺼내고 싶을 때 위에서 부터 차례대로 꺼내야하는 것처럼 순서대로 진행하지만 꺼낼 때는 역방향인 후입선출(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)--]; 으로 작성해서 주소값을 감소시킴.

0개의 댓글