학습 내용
큐(Queue)
큐는 스택과 함께 대표적인 자료구조의 일종을 먼저 들어온 것이 먼저 나가는(First In First Out, FIFO) 구조를 가지고 있다. 이전의 스택 구조에서 한 쪽을 막고 있던 벽을 부순 형태라고 생각하면 쉽다. 단, 일방통행이므로 무조건 선입선출이다.
스택과 동일한 예제에서 살펴보자.
< 큐 >
입구 => 출구
----------------------------------------
----------------------------------------
< 명령어 >
삽입(7) - 삽입(5) - 삽입(4) - 삭제() - 삽입(6) - 삭제()
1. 7부터 순서대로 삽입이 되어 다음과 같은 상태가 된다.
입구 => 출구
----------------------------------------
4 5 7
----------------------------------------
2. 이제 삭제 명령이 수행되는데, 삭제할 때는 출구와 가장 가까운 원소가 나간다.
입구 => 출구
----------------------------------------
4 5
----------------------------------------
3. 다음으로 6을 삽입한다.
입구 => 출구
----------------------------------------
6 4 5
----------------------------------------
4. 이후 마지막 명령어를 수행하면 다음과 같은 상태가 된다.
입구 => 출구
----------------------------------------
6 4
----------------------------------------
이를 코드로 나타내면 다음과 같다.
#include <iostream>
#include <queue>
using namespace std;
int main(void){
queue<int> q;
q.push(7);
q.push(5);
q.push(4);
q.pop();
q.push(6);
q.pop();
while(!q.empty()){
cout << q.front() << ' ';
q.pop();
}
return 0;
}
'Algorithm > 실전 알고리즘' 카테고리의 다른 글
[C/C++] 실전 알고리즘 강좌 17강. 깊이 우선 탐색(Depth First Search) (0) | 2023.10.09 |
---|---|
[C/C++] 실전 알고리즘 강좌 16강. 너비 우선 탐색(Breath First Search) (0) | 2023.10.09 |
[C/C++] 실전 알고리즘 강좌 14강. 스택 (0) | 2023.09.15 |
[C/C++] 실전 알고리즘 강좌 12강. 계수 정렬 (0) | 2023.09.15 |
[C/C++] 실전 알고리즘 강좌 11강. 힙 정렬 (0) | 2023.09.15 |