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