JavaScript의 배열(Array)은 스택도 큐도 아니다.
그냥 양쪽 끝에서 삽입/삭제가 가능한 유연한 자료구조
push()
+ pop()
로 스택처럼 쓸 수 있고
push()
+ shift()
로 큐처럼 쓸 수도 있다.
즉, 양방향에서 삽입/삭제가 가능한 덱(deque)처럼 행동할 수 있는 것.
JavaScript 자체에는 Stack이나 Queue라는 전용 자료구조는 없기 때문에
배열로 직접 구현해야 한다.
언어 | 스택 자료구조 | 큐 자료구조 |
---|---|---|
Java | Stack, Deque, Queue 있음 | Queue, LinkedList 등 |
Python | list, deque | queue.Queue, collections.deque |
JS | ❌ 없음 | ❌ 없음 (배열을 활용) |
JavaScript에선 스택/큐 문제를 풀 때
배열로 스택처럼 쓸지, 큐처럼 쓸지를 직접 정해야한다.