logo

콜스택

Chapter 1

68 조회

0 추천

329 단어

2분 예상

2024. 08. 12. 게시

luasenvy 작성

CC BY-NC-SA 4.0

Stack

Stack

자료구조의 하나로 위 그림처럼 입력과 출력이 한 곳에서만 이루어진다. 입구로 데이터가 차례대로 들어갈 수 있으며 꺼낼때에는 가장 마지막에 들어간 동전부터 차례로 꺼내야 한다. Last In First OutLIFO 또는 한자어로 후입선출이라 하는 사람들도 있다. js로 구현한다면 배열로 push, pop 또는 shift, unshift 메서드를 활용하여 쉽게 구현할 수 있다.

const store = [];
store.push(1);
store.push(2);
store.push(3);

let cursor;
cursor = store.pop(); // 3
cursor = store.pop(); // 2
cursor = store.pop(); // 1

Call Stack

const B = (num) => num + Math.trunc(Math.random() * 100);

const A = () => B(Math.trunc(Math.random() * 50))

A();

위에서 설명한 스택의 동전을 함수로 치환하여 생각해본다면 아주 쉽게 이해할 수 있다. 함수가 실행될 때마다 동전통에 동전이 하나씩 채워지고 함수가 종료반환될 때 동전을 하나씩 빼는 것이다. A함수가 실행되면서 스택에 채워진다. A함수를 실행하던 도중 B함수가 실행되면서 다시 콜 스택에 B함수가 채워진다. B함수가 반환되면 A함수를 마저 실행한다.