View

반응형

 

【 큐(Queue) 란? 】

 

C++의 STL 중 하나인 큐(Queue)는 선입선출(FIFO, First-In-First-Out) 자료구조를 구현하는 컨테이너 클래스이다.

큐는 데이터를 삽입하는 enqueue와 데이터를 삭제하는 dequeue 연산을 지원한다.

FIFO 형식의 자료구조인 큐(Queue)

 

일상생활에서 우리가 자주 접하는 큐의 예시로는 음식점에서 주문을 받는 경우를 들 수 있다. 음식점에서는 손님이 주문을 하면 주문서를 작성하고, 그 주문서는 주방에 전달되며 그 내용을 바탕으로 음식을 만들고 손님에게 전달한다. 이때 음식을 전달하는 과정은 큐의 구조처럼 주문이 들어온 순서대로 이루어진다.

 

 

 

【 큐(Queue)의 특징 】

 

큐는 다음의 특징이 있다.

 

  1. 선입선출(FIFO) 구조: 앞서 언급했듯이 선입선출 구조를 가지고 있어, 먼저 들어온 데이터가 먼저 처리되고 나중에 들어온 데이터는 나중에 처리된다.
  2. 제한적인 데이터 삽입/삭제: 데이터를 삽입하는 경우는 큐의 맨 뒤에 새로운 데이터를 추가하고, 데이터를 삭제하는 경우는 큐의 맨 앞에서 데이터를 삭제한다.
  3. O(1)의 시간 복잡도: 삽입과 삭제가 각각 O(1)의 시간 복잡도를 가지고 있어 효율적인 처리가 가능하다.
  4. 순차적인 접근: 순차적인 접근만 가능하며, 임의의 위치에 있는 데이터에는 직접적으로 접근할 수 없다.

 

 

 

 

【 큐(Queue)의 멤버 함수 】

 

멤버 함수

q.push()
큐의 뒤쪽에 데이터 삽입

q.pop()
큐의 맨 앞쪽의 데이터 제거

q.front()
큐의 맨 앞쪽의 데이터 반환

q.back()
큐의 맨 뒤쪽의 데이터 반환

q.empty()
큐가 비어 있는지 확인(비었으면 1, 아니면 0을 반환)
             
       q.size()        
       
큐에 저장된 데이터의 개수 반환

q.swap()

서로 다른 두 큐의 데이터를 교환할 때 사용

 

 

【 예제 】

 

다음은 큐를 사용하여 1부터 10까지의 자연수 중 홀수만 출력하는 예제 코드이다.

#include <iostream>
#include <queue>

using namespace std;

int main() {
    queue<int> q;

    for (int i = 1; i <= 10; i++) {
        q.push(i);
    }

    while (!q.empty()) {
        int num = q.front();
        q.pop();

        if (num % 2 == 1) {
            cout << num << " ";
        }
    }

    cout << endl;

    return 0;
}
728x90
반응형
Share Link
reply
250x250
반응형
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31