Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

데이터 구조의 대기열 작업

<시간/>

대기열은 선입선출 데이터 구조입니다. 대기열은 그래프 탐색 알고리즘 너비 우선 검색 등을 위해 다른 영역에서 사용됩니다. 대기열에는 몇 가지 기본 작업이 있습니다. 여기서 우리는 이러한 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