대기열은 선입선출 데이터 구조입니다. 대기열은 그래프 탐색 알고리즘 너비 우선 검색 등을 위해 다른 영역에서 사용됩니다. 대기열에는 몇 가지 기본 작업이 있습니다. 여기서 우리는 이러한 queue 작업을 볼 것이고, queue ADT를 사용하는 한 가지 예를 볼 것입니다.
ADT(추상 데이터 유형)는 특정 종류의 데이터 유형으로, 그 동작은 값 집합과 연산 집합에 의해 정의됩니다. 이러한 데이터 유형을 사용할 수 있으므로 "추상"이라는 키워드가 사용되며 다른 작업을 수행할 수 있습니다. 그러나 이러한 작업이 작동하는 방식은 사용자에게 완전히 숨겨져 있습니다. ADT는 원시 데이터 유형으로 구성되어 있지만 연산 논리가 숨겨져 있습니다.
이것은 대기열 ADT의 몇 가지 작업 또는 기능입니다.
- isFull(), 대기열이 가득 찼는지 여부를 확인하는 데 사용됩니다.
- isEmpry(), 대기열이 비어 있는지 여부를 확인하는 데 사용됩니다.
- enqueue(x), 큐의 끝에서 x를 푸시하는 데 사용됩니다.
- delete(), 이것은 의 프론트 엔드에서 하나의 요소를 삭제하는 데 사용됩니다.
- front(), 큐의 맨 앞 요소를 가져오는 데 사용됩니다.
- size(), 이 함수는 큐에 있는 요소 수를 가져오는 데 사용됩니다.
예시
#include<iostream> #include<queue> using namespace std; main(){ queue<int> que; if(que.empty()){ cout << "Queue is empty" << endl; } else { cout << "Queue is not empty" << endl; } //insert elements into queue que.push(10); que.push(20); que.push(30); que.push(40); que.push(50); cout << "Size of the queue: " << que.size() << endl; //delete and dispay elements while(!que.empty()) { int item = que.front(); // read element from first position que.pop(); cout << item << " "; } }
출력
Queue is empty Size of the queue: 5 10 20 30 40 50