큐는 FIFO(First In First Out)특징을 가지는 자료구조입니다.
다음 사진과 같이 터널을 자동차가 지나간다고 이야기했을 때 가장 처음 들어간 자동차는 그대로 터널을 통과해서 나올겁니다.
즉 데이터를 삽입하고 출구앞에서부터 데이터가 쌓이기시작하기 때문에 데이터를 꺼낼 때 마다 데이터를 넣었던 순서대로 데이터를 삭제하거나 활용할 수 있습니다.
이러한 큐는 너비 우선 탐색(Breadth First Search)알고리즘에서 활용될 수 있습니다. 이러한 큐의 응용법은 BFS알고리즘 게시글에서 다시한번 확인하실 수 있습니다.
C++공식 홈페이지를 확인해보겠습니다.
https://www.cplusplus.com/reference/queue/queue/?kw=queue
queue - C++ Reference
container_typeThe second template parameter (Container)Type of the underlying container
www.cplusplus.com
큐는 다음과같이 6개의 operations를 가지고있으며 스택과 동일하게 template구조로써 선언시 이용할 데이터의 자료형을 명시해주고 사용해야합니다.
앞서 스택게시글의 존재하는 함수와 동일하기 때문에 size, empty push_back 함수는 생략하겠습니다.
특별하게 다른점은 back, front라 명시되어있는데 이 부분은 현재로써는 입구와 출구가 서로 반대방향에 존재한다는 것으로 이해하시면 될것 같습니다. 이어서 push_back은 데이터를 삽입, pop_front는 데이터 제거, front는 가장 앞에 존재하는 데이터의 원소를 불러오는 함수가 되겠습니다.
큐 자료구조는 이후 덱(Double Ended Queue)자료구조에서 더 응용되어 사용될 수 있습니다.
이것으로 큐 자료구조에 대한 설명을 마치겠습니다.
'자료구조' 카테고리의 다른 글
Stack(스택)이란? (0) | 2021.12.06 |
---|