[자료구조] 큐(Queue) - 코딩밥상
큐의 개념
앞서 배운 스택은 데이터의 입출력이 이루어지는 창구가 하나뿐이고 데이터 처리 방식이 LIFO인 ADT였습니다.
이번에 배울 큐는 이와 반대로 입출력 창구가 각각 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 FIFO(First In First Out)구조 입니다.
은행에 일을 보러 가서 대기번호를 뽑는경우, 맛집을 가서 웨이팅을 서는 경우 등 일상생활에서 자주 접하는 방식들이 큐로 이루어 질 수 있겠네요 즉 다른 작업에 영향을 받지 않고 데이터의 입력 순서대로 선입선출을 따라 동작하는 알고리즘을 짤 때 유용하게 사용할 수 있습니다.
큐의 핵심 기능 '삽입과 제거'
큐의 가장 앞 요소를 전단, 가장 마지막 요소를 후단이라고 부르는데, 삽입 연산은 후단, 제거 연산은 전단에서 각각 수행합니다.
그래야 선입선출방식을 따를 수 있겠죠?
정리하자면, 큐에서 '삽입(Enqueue)'은 후단에 노드를 덧붙여서 새로운 후단을 만드는 연산입니다.
큐에서 '제거(Dequeue)'는 전단의 노드를 없애서 전단 뒤에 있는 노드를 새로운 전단으로 만드는 연산입니다.
다음 포스팅에서 순환구조 큐와 링크드 기반 큐를 직접 구현해보겠습니다.
2022.12.29 - [자료구조/큐(Queue)] - [자료구조] 순환 큐(Circular Queue) - 코딩밥상
[자료구조] 순환 큐(Circular Queue) - 코딩밥상
배열 기반 순환 큐 배열을 기반으로 선입선출의 방식을 따르는 큐를 구현한다고 생각해 봅시다. 제거 연산 후에 전단 요소가 삭제 된다면 남아있는 모든 요소들은 빈 자리를 채우기 위해 앞으
sheepseung.tistory.com