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