본문 바로가기
자료구조

[큐] Queue란?

by 까망 하르방 2021. 4. 23.
반응형

Queue란?

선입선출(First In First Out, FIFO)의 자료 구조

▶ 큐(Queue)는 한쪽에서 삽입(Push, Enqueue) 하며, 다른 한쪽에서 빠져나오는(Pop, Dequeue) 구조

    두 지점을 <Head> 와 <Tail>로 표현한다. (Front, Rear)

▶ C++ STL로 구현한 Queue  

 

[C++] [STL] Queue

Queue 기본 연산 - FIFO 구조 (First In First Out) - push(element) : 큐 (뒤에) 원소 추가 - pop() : 큐에 (앞쪽에) 있는 원소 삭제 - front() : 큐 제일 앞에 있는 원소 반환 - back() : 큐 제일 뒤에 있는..

zoosso.tistory.com

 

예제

- 티켓 구매를 위해서 대기표를 뽑아서 번호순 대로 처리

- 대중교통을 줄 서서 대기하다가 앞 사람부터 들어가는 행위

BFS (Breadth-First Search, 너비 우선 탐색) 

- 우선순위 큐 (Priority Queue)

   ex. 프린터 인쇄 대기열

- 작업 스케줄러 및 프로세스 관리

 

구현

#include <stdio.h>
struct Queue {
       int fr = 0;
       int re = 0;
    int arr[10];
   
    void push(int data)
       {
              arr[re++] = data;
       }
       int pop()
       {
              return arr[fr++];
       }
       int size()
       {
              return re - fr;
       }
}queue;

int main()
{
       int data[] = { 3, 2, 5, 4, 1 };
       for (int i = 0; i < 5; ++i)
       {
              queue.push(data[i]);
       }
       printf("Queue Size: %d\n", queue.size());
       for (int i = 0; i < 5; ++i)
       {
              printf("%d\n", queue.pop());
       }
}

 

구현시 고려사항

- Queue (정적) 크기

    → 연결리스트로 구현하거나 원형 큐(Circular Queue)로 구현할 수도 있다.

- 비어 있는 상태 (Empty)

- 가득 찬 상태 (Full)

- Queue 들어있는 원소 개수

 

 

Reference

[List] 순차 리스트(정적 배열) & 연결 리스트(동적할당) 비교  

[큐] Queue (동적할당, 연결리스트 구현)

[큐] Queue (Memory Pool 방식 구현)

C++ STL로 구현한 Queue

BFS (Breadth-First Search, 너비 우선 탐색)  

우선순위 큐 (Priority Queue)  

 

관련 문제

[BOJ] 2164 카드2

[Jungol] 3101 요세푸스 문제 1

[Jungol] 3701 queue api

[Jungol] 1697 큐(Queue)

[BOJ] 10845 큐

[BOJ] 18258 큐 2

반응형

'자료구조' 카테고리의 다른 글

[해시] Hash란?  (2) 2021.04.30
[큐] 원형 큐 (Circular Queue)  (0) 2021.04.24
[스택] Stack 이란?  (0) 2021.04.22
우선순위 큐 (Priority Queue)  (0) 2021.03.21
힙(Heap) 시뮬레이션  (0) 2021.02.27

댓글