스택(stack)과 큐(Queue) 1. 스택(Stack) 스택은 LIFO(Last In Fisrt Out, 후입선출) 자료구조이다. 스택에서는 마지막으로 추가된 요소가 제일 먼저 제거된다. 배열에서 push 메서드와 pop 메서드를 사용하여 스택 자료구조를 만들 수 있다. 또는 별도의 클래스로 자신만의 스택 자료구조를 만들 수도 있다. 기본 구조 기본 구조는 연결리스트에서 했던 것처럼 Node 클래스를 활용하고, Stack 클래스의 constructor에는 first, last, size 프로퍼티를 둔다. 연결 리스트의 일종이라고 볼 수 있다. push와 pop 메서드를 만들 때, 연결 리스트에서 만들었던 메서드를 활용하면 되는데, 그 중 O(1) 시간복잡도를 가지는 shift와 unshift 메서드를 활용한다. 리스트의 제일 앞에 추가하고 제일 앞의 것을 제거하는 형태이지만, 결과적으로 스택 자료구조이다. 공간적으로 앞과 뒤가 중요한 것이
stack & queue & linked list 1. 예외 처리 2. stack 스택은 가장 윗부분에서만 자료의 추가와 삭제가 일어나므로 실행속도가 빠르고 구현이 쉬운 효율적인 자료구조다. 2.1 스택 동작 스택은 요소 리스트로 구성되며 탑(top)이라 불리는 리스트의 한쪽 끝으로만 요소에 접근할 수 있다. 스택은 후입선출(last in, first out, LIFO) 자료구조 알려져 있다. 스택은 후입선출이라는 특성 때문에 스택의 탑에 있지 않은 요소에는 접근할 수 없다. 스택의 밑바닥에 있는 요소에 접근하려면 모든 요소를 제거하는 수밖에 없다. 스택은 스택에 요소를 추가하거나 요소를 스택에서 제거하는 두 가지 주요 동작을 제공한다. 스택에서는 push 동작을 이용해 오소를 스택에 추가한다. 또한 pop 동작을 이용해 스택에서 요소를 꺼낼 수 있다. peek 을 이용하면 스택의 탑에 있