【 스택(Stack) 이란? 】 C++의 STL 중 하나인 스택(Stack)은 후입선출(LIFO, Last-In-First-Out) 원칙에 따라 데이터를 저장하는 추상적인 자료 구조이다. 스택은 일종의 리스트로, 리스트의 한쪽 끝에서만 자료의 추가와 삭제가 가능하다. 스택은 컴퓨터 프로그램에서 임시 데이터나 함수의 호출 정보를 저장하는 데 많이 이용된다. 또한 다른 자료 구조를 구현하는 데에도 사용된다. 예를 들어 스택을 이용해 괄호의 짝을 검사하거나, 그래프 탐색 알고리즘에서 방문한 노드들의 순서를 기억하는 등에 활용된다. 일상생활에서 스택을 알 수 있는 예로는 책을 쌓아놓은 형태가 있다. 책을 쌓아놓은 모습이 스택의 push 연산과 유사하다. 새로운 책을 쌓으려면 책의 맨 위에 쌓아야 하듯이, 새로운..
【 큐(Queue) 란? 】 C++의 STL 중 하나인 큐(Queue)는 선입선출(FIFO, First-In-First-Out) 자료구조를 구현하는 컨테이너 클래스이다. 큐는 데이터를 삽입하는 enqueue와 데이터를 삭제하는 dequeue 연산을 지원한다. 일상생활에서 우리가 자주 접하는 큐의 예시로는 음식점에서 주문을 받는 경우를 들 수 있다. 음식점에서는 손님이 주문을 하면 주문서를 작성하고, 그 주문서는 주방에 전달되며 그 내용을 바탕으로 음식을 만들고 손님에게 전달한다. 이때 음식을 전달하는 과정은 큐의 구조처럼 주문이 들어온 순서대로 이루어진다. 【 큐(Queue)의 특징 】 큐는 다음의 특징이 있다. 선입선출(FIFO) 구조: 앞서 언급했듯이 선입선출 구조를 가지고 있어, 먼저 들어온 데이터..