스택(Stack)
은 "쌓다"라는 의미, 데이터를 차곡차곡 올린 형태의 자료구조입니다. 위의 사진 대로 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있습니다.
스택은 정해진 방향대로만 쌓을 수 있으며, top으로 정한 곳을 통해서만 접근 가능합니다. 새로 삽입되는 자료는 top이 가르키는 가장 맨 위에 쌓이게 되며, 삭제할 때도 top을 통해서 삭제가 가능합니다.
스택에서는 삽입 연산을 'push', 삭제 연산을 'pop' 라고 하며, 이러한 스택의 구조를 후입선출의 구조라고 하고 줄여서 LIFO(Last In First Out)이라고 부릅니다.
큐(Queue)
는 스택과 다르게 먼저 들어온 것이 먼저 나가는 "선입선출" 구조로, FIFO(First In First Out) 의 구조를 가지고 있습니다.
삭제 연산이 수행되는 곳을 프론트(Front), 삽입 연산이 이루어지는 곳은 리어(Rear)로, FIFO 구조를 위해서 스택과 다르게 큐의 한쪽 끝에는 삽입 작업이, 다른 한쪽 끝에서는 삭제 작업이 나뉘어서 이루어지고 있습니다.
큐는 리어(Rear)에서 이루어지는 삽입 연산을 인큐(Enqueue) 라고 부르며, 프론트(Front)에서 이루어지는 삭제 연산을 디큐(Dequeue) 라고 부릅니다.
💟참고자료