이 강좌는 널널한 개발자님의 강의를 기반으로 작성한 글입니다.
선형 자료구조 Stack과 Queue
Stack
스택은 1차원적인 선형자료구조이며, 입출력 지점이 1개뿐인 자료구조이다.
- Last In First Out 구조
- 처음 넣은것은 맨 아래바닥에 깔린다.
- 넣는 것은 push, 빼는 것은 pop이다.
- 두 번째부터는 처음 넣은 것 위에 쌓인다.
- 바닥에 있는 것을 꺼내려 면 위에 쌓인 것들을 모두 치우는 수 밖에 없다.
- 생각해볼 문제: 이런 구조는 왜 필요할까?
- '(정보) 뒤집기'나 '되돌아가기'에서 많이 사용한다.

Queue
큐는 1차원적인 선형자료구조이며, 입출력 지점이 2개인 자료구조이다.
- First In First Out 구조
- 버스를타기위해 줄을 서는 것과 같다.
- 은행에서도 비슷한 경험을 할 수 있다.
- 넣는 것은 enqueue, 빼는 것을 dequeue
- 생각해볼 문제: 비슷해 보이지만 버스를 타려고 줄을 선 것과 은행에서 기다리는 것은 차이가 있다. 무엇이 같고 무엇이 다를까?
큐는 동기화와 매우 많은 관련이 있다. 멀티태스킹이나 멀티쓰레딩 환경에서 동시다발적으로 연산하기 좋게 할때 큐라는 자료구조를 쓴다.
