스택(stack)과 큐(Queue) 1. 스택(Stack) 스택은 LIFO(Last In Fisrt Out, 후입선출) 자료구조이다. 스택에서는 마지막으로 추가된 요소가 제일 먼저 제거된다. 배열에서 push 메서드와 pop 메서드를 사용하여 스택 자료구조를 만들 수 있다. 또는 별도의 클래스로 자신만의 스택 자료구조를 만들 수도 있다. 기본 구조 기본 구조는 연결리스트에서 했던 것처럼 Node 클래스를 활용하고, Stack 클래스의 constructor에는 first, last, size 프로퍼티를 둔다. 연결 리스트의 일종이라고 볼 수 있다. push와 pop 메서드를 만들 때, 연결 리스트에서 만들었던 메서드를 활용하면 되는데, 그 중 O(1) 시간복잡도를 가지는 shift와 unshift 메서드를 활용한다. 리스트의 제일 앞에 추가하고 제일 앞의 것을 제거하는 형태이지만, 결과적으로 스택 자료구조이다. 공간적으로 앞과 뒤가 중요한 것이