본문 바로가기

알고리즘/알고리즘_기초

10강 - 큐 (Queue)

1. 큐

1) 정의

1> FIFO (First In First Out)

2> 먼저 집어 넣은 data가 먼저 나오는 구조

3> data 삽입은 한 쪽 끝에서, 삭제는 반대쪽 끝에서만 일어난다.

4> 용어

- rear: 삽입이 일어나는 쪽

- front: 삭제가 일어나는 곳

 

2) 특징

1> 일종의 리스트

2> Linked List로 구현

 

3) 선언

1> 헤더 파일

#include <queue>

2> 큐 선언

queue<'data type'> '변수명';

 

4) 연산

1> 추가: 뒷 부분(back) 추가

q.push(element); // 큐의 뒷 부분에(back) 원소를 추가 

2> 삭제: 앞에 있는(front) element를 삭제

q.pop(); // 큐의 앞에 있는(front) 원소를 삭제

3> 조회

- front (삭제 되는 곳)

q.front(); // 큐 제일 앞에 있는 원소를 return (삭제 되는 곳)

- back (추가 되는 곳)

q.front(); // 큐 제일 앞에 있는 원소를 return (추가 되는 곳)

4> 크기

q.size(); // 큐 내부의 element 개수를 return

5> 비어있는지

q.empty(); // 큐가 비어있으면 true를 return (아니면 false를 return)