
Stackstack은 쌓다, 쌓이다와 같은 뜻을 가지고 있다.
짐을 위로 차곡차곡 쌓듯한 형태와 비슷한 이 자료구조는
말 그대로 data를 쌓는 자료구조다.
실제로 자바스크립트에서 함수를 호출하는 방식은 stack방식을 이용한다.
function sayhello() {
console.log('hello');
}
function sayName() {
console.log('quakka');
}
function introduce() {
console.log(`${sayHello()}, my name is ${sayName()}`);
}
위의 코드를 본다면 call stack에 함수들이 쌓인다.
call stack에서 빠진다.call stack에 쌓인다.call stack에서 빠진다.call stack에서 빠진다.위 예시에서 볼 수 있듯이먼저 들어간 데이터는 가장 나중에 나올 수 있다 이것을 LIFO(Last In First Out)이라고도 한다.
Queue는 줄을 서서 기다리다, 대기 행렬이라는 뜻을 가지고 있다.
Stack과는 조금 반대되는 개념으로 먼저 들어간 data가 먼저 나오는 FIFO(First In First Out)의 특성을 가지고 있다.
실제 고속도로 톨게이트를 본다면, 먼저 도착한 차량의 계산이 끝나고 나가야지만 다음 차량이 계산을 하고 나갈 수 있다.
이것을 Queue와 같은 원리라고 생각할 수 있다.
아래 그림에서 3번의 차가 빠져나가려면 1번과 2번의 차가 나가야지만 나갈 수 있다.