반응형
큐(Queue)란?
큐는 연결 리스트와 스택과 유사하게 데이터를 저장하는 자료구조입니다.
- 데이터 삽입이 한쪽 끝(뒤, rear)에서 이루어지고 삭제는 다른 쪽 끝(앞, front)에서 이루어지는 정렬된 리스트이다.
- 선입선출(FIFO) 혹은 후입후출(LILO) 리스트라고 불린다.
- 일반적으로 큐는 사람들이나 물건들이 한 줄로 서서 차례를 기다리는 것과 비슷하다.
큐의 종류
- 우선순위 큐(Priority Queue)
- 선형 큐 (Linear Queue)
- 원형 큐 (Circular Queue)
큐의 멤버 함수
-
q.front() : q의 맨 앞(front)의 원소 리턴
-
q.back() : q의 맨 뒤(rear)의 원소 리턴
-
q.push(x) : q의 맨 뒤에 x 원소 추가
-
q.pop() : q의 맨 앞(front)의 원소 삭제
-
q.size() : q의 사이즈(원소의 개수) 리턴
-
q.empty() : q의 사이즈(원소의 개수)가 0인지 아닌지 확인 (q가 비어있다면 1, 아니라면 0을 리턴)
예제 코드
#include<iostream>
#include<queue>
using namespace std;
int x;
queue<int> q;
int main()
{
cout << "\n<q에 데이터 삽입하기 전>\n";
cout << "empty? : " << q.empty() << '\n';
cout << "size : " << q.size() << '\n';
// q에 1~5까지 데이터 순서대로 넣기
for (int i = 1; i <= 5; i++) q.push(i);
cout << "\n<q에 1~5까지 삽입>\n";
cout << "empty? : " << q.empty() << '\n';
cout << "size : " << q.size() << '\n';
cout << "front : " << q.front() << '\n';
cout << "back : " << q.back() << '\n';
cout << "\n<pop()하고 6을 push()>\n";
q.pop();
q.push(6);
cout << "empty? : " << q.empty() << '\n';
cout << "size : " << q.size() << '\n';
cout << "front : " << q.front() << '\n';
cout << "back : " << q.back() << '\n';
}
실행결과
Queue의 경우 iterator가 존재하지 않으며 find함수를 사용할 수 없기 때문에 Verctor처럼 index를 통해 접근 혹은 탐색이 불가능하다는 점에 유의하세요.
큐 연습문제 추천
cocoon1787.tistory.com/232?category=831127
반응형
'🟦C++' 카테고리의 다른 글
[C++] STL Deque 덱 사용법과 예제코드 (0) | 2020.12.08 |
---|---|
[C++] STL Stack 스택 사용법과 예제코드 (0) | 2020.12.08 |
[C/C++] 2차원 배열 정렬하는 방법 (vector) (1) | 2020.11.28 |
[C/C++] STL sort 정렬 함수 (오름차순, 내림차순) 예제코드 (0) | 2020.11.22 |
[C/C++] 클래스와 객체 (2) | 2020.08.12 |