
Stack은 직역 그대로, 자료(data)를 쌓는 자료구조입니다.
Stack의 예시로 긴테니스공 통에 공을 차곡차곡 보관하고, 공을 사용하려 하였을 때 마지막에 넣은 공부터 하나씩 꺼내어 사용할 수 있습니다. 이처럼 Stack의 자료구조의 특성은 입출이 하나인 제한적 접근에 있습니다. 이런 Stack자료구조의 정책을 LIFO(Last In First Out) 혹은 FILO(First In Last OUt)이라고 부르기도 합니다.
const stack = []
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
console.log(stack); // [1, 2, 3, 4, 5]
stack.pop();
stack.pop();
console.log(stack); // [1, 2, 3]
// 이런식으로 push와pop를 통해서 구현할 수 있다.
Queue는 줄을 서다 라는 뜻으로 Stack과는 반대되는 개념으로, 먼저 들어간 자료가 먼저 나오는 FIFO(First In First Out)혹은 LILO(Last In Last Out)의 특성을 가지고 있는 자료구조입니다. Queue의 예시로 영화를 볼때 티켓을 먼저 직원에게 보여준 사람이 먼저 입장 할 수 있습니다.
// const array = new Array() 미리 정의된 Array 객체를 사용합니다.
const queue = [];
queue.push(1);
queue.push(2);
queue.push(3);
queue.push(4);
queue.push(5);
console.log(queue); // [1, 2, 3, 4, 5]
queue.shift();
queue.shift();
console.log(queue); // [3, 4, 5]
// 이런식으로 push와 shift를 이용해서 구현할 수 있다.