
쌓다 라는 의미로, 데이터를 쌓아 올려 후입선출(LIFO) 특성을 가지는 자료구조이다.
즉, 가장 마지막에 삽입된 자료가 가장 먼저 나가는 구조를 가지고 있다.
let arr = [1,2,3];
arr.push(4);
console.log(arr) // 1,2,3,4
arr.pop()
console.log(arr) // 1,2,3
배열의 push()와 pop()을 사용하면 단순하게 stack을 구현할 수 있다.

스택과는 다르게, 먼저 들어온 것이 먼저 나가는 선입선출(FIFO)구조를 가지고 있다.
let arr = [1,2,3];
arr.push(4);
console.log(arr) // 1,2,3,4
arr.shift()
console.log(arr) // 2,3,4
배열의 push()와 shift()를 이용하면 queue를 구현할 수 있다.

스택 큐의 기능을 모두 가지고 있어서, 양 끝쪽에서 모두 삽입, 삭제가 가능한 자료구조로 선입선출(FIFO), 후입선출(LIFO)개념을 모두 가지고 있는 구조이다.
let arr = [1,2,3];
arr.push(4);
console.log(arr) // 1,2,3,4
arr.shift()
console.log(arr) // 2,3,4
arr.unshift(5)
console.log(arr) // 5,2,3,4
arr.pop()
console.log(arr) // 5,2,3
배열의 shift(), unshift(), pop(), push()를 이용해 자유롭게 배열의 맨 앞,뒤에서 삽입 삭제를 구현할 수 있다.