
스택(Stack)은 후입선출(Last-In, First-Out, LIFO) 방식으로 동작하는 데이터 구조이다. 스택은 데이터를 쌓아 올리는 형태로 동작하며, 가장 최근에 추가된 데이터가 가장 먼저 제거되는 방식이다. 이러한 특성 때문에 스택은 데이터의 삽입과 삭제가 한쪽 끝에서만 이루어지는 구조를 가지고 있다. 이를 "스택의 꼭대기(top)"라고 부르며, 가장 최근에 추가된 요소가 꼭대기에 위치한다. 스택의 주요 연산은 "push"와 "pop"이다. "push"는 스택의 꼭대기에 요소를 추가하는 동작을 의미하고, "pop"은 스택의 꼭대기에 있는 요소를 제거하고 반환하는 동작을 의미한다.
큐(Queue)는 선입선출(First-In, First-Out, FIFO) 방식으로 동작하는 데이터 구조이다. 큐는 데이터를 일렬로 나열한 형태로 동작하며, 가장 먼저 추가된 데이터가 가장 먼저 제거되는 방식이다. 이러한 특성 때문에 큐는 데이터의 삽입은 한쪽 끝에서, 삭제는 반대쪽 끝에서 이루어지는 구조를 가지고 있다. 큐의 한쪽 끝을 "프런트(front)", 다른 한쪽 끝을 "리어(rear)"라고 부르며, 삽입은 리어에서 이루어지고, 삭제는 프런트에서 이루어진다. 큐의 주요 연산은 "enqueue"와 "dequeue"이다. "enqueue"는 큐의 리어에 요소를 추가하는 동작을 의미하고, "dequeue"는 큐의 프런트에 있는 요소를 제거하고 반환하는 동작을 의미한다.