큐는 리스트의 일종으로 스택의 LIFO (Last - In First -Out) 구조가 아닌 FIFO (First - In First -Out) 구조를 가지고 있다.
FIFO는 (First - In First -Out) 이름과 같이 가장 처음에 들어간 데이터가 가장 먼저 나오는 구조이다.
삽입이 일어나는 쪽을 뒤(Rear) 삭제가 일어나는 쪽을 (Front)라고 한다.
프린트 큐, CPU스케줄링, 데이터 버퍼, BFS 등에 사용된다.
queue 만들기
#include <queue> //큐를 사용하기 위해 필요한 헤더
queue<int> Q; //변수명 Q로 큐를 만듬 queue<데이터 형식> 변수 명
먼저 queue를 만들기 위해선 먼저 <queue> 라는 헤더를 가져올 필요가 있다.
그리고 큐를 만들기 위해 queue<데이터 형식> 변수 명 을 사용한다.
push
for (int i = 0; i < 5; i++)
{
Q.push(i);
}
//Q -> { 0, 1, 2, 3, 4 }
push는 queue에 값을 넣을수 있는데 stack와는 반대로 뒤에 차곡차곡 값이 쌓인다.
pop
Q.pop();
//Q -> { 1, 2, 3, 4 }
pop는 값을 지우는데 넣은 순서와는 반대로 앞의 값을 지운다.
front, back
Q.front() // queue의 제일 앞에있는 값을 리턴한다.
Q.back() // queue의 제일 뒤에있는 값을 리턴한다.
//Q -> { 1, 2, 3, 4 }
//front 는 1, back는 4
front는 queue의 가장 앞에 있는 값을 리턴한다.
back는 queue의 가장 뒤에 있는 값을 리턴한다.
empty
if (Q.empty())
{
cout << "큐가 비었음";
}
else
{
cout << "큐가 안 비었음";
}
empty는 queue가 비었는지 확인하는데 비어있다면 True를 비어있지 않다면 false값을 반환한다.
size
Q.size()//큐의 사이즈 확인
//현재 Q에는 { 1, 2, 3, 4 } 가 들어 있으므로 4가 리턴됨
size는 queue에 들어있는 값의 수를 리턴한다.
예시에는 { 1, 2, 3, 4 } 4개의 값이 들어 있어 4를 리턴한다.
'코딩 > 자료구조' 카테고리의 다른 글
[자료구조] 이진 검색 트리 (0) | 2022.07.06 |
---|---|
[자료구조] 그래프 (0) | 2022.07.04 |
[자료구조] 스택(Stack) (0) | 2022.07.04 |
[자료구조] 연결 리스트 (0) | 2022.06.20 |
[자료구조] 시간 복잡도 와 공간 복잡도 (0) | 2022.06.07 |