C++中的队列实现

时间:2020-02-23 14:30:02  来源:igfitidea点击:

本文是关于使用C++中的数组的队列实现。

队列作为抽象数据类型

队列是一个有序的数据结构,用于存储FIFO中的数据类型(首先排在第一个OUT)顺序中。
这意味着首先进入的元素首先进入(处理)。
它就像任何票证柜台前面的正常队列就像。
当然,第一个人将是第一个从柜台获得机票的人。
队列是一种类似的数据类型,其中插入和删除在两个相对的两端完成,即前后。
队列仅包含类似的数据类型。

插入过程被命名为enqueue

删除过程命名为Dequeue

在队列上操作

type_t =任何数据类型

基本操作:

eNqueue(type_t数据):它将数据类型type_t的数据插入到队列中

type_t dequeue():从队列中删除第一个元素(在前端)并返回它

其他操作:

type_t queue_front():返回前元素

BOOL ISEMPTY():如果队列为空,则返回true,否则返回false

int size():返回队列的大小

例子:

让插入的元素是

1,2,3,4

C++实施

#include<bits/stdc++.h>
using namespace std;
#define MAX_SIZE 1024
 
int arr[MAX_SIZE];
int front=0;
int rear=0;
 
void enQueue(int x){
        arr[front++]=x;
        cout<<x<<" is enQueued\n";
}
 
bool isEmpty(){
  if(front==rear)
  return true;
  return false;
}
 
bool isFull(){
  if(front==MAX_SIZE)
  return true;
  return false;
}
 
int deQueue(){
        if(isEmpty()){
          cout<<"Empty Queue\n";
          return INT_MIN;
        }
        int val=arr[rear++];
        return val;
}
 
int queue_front(){
  if(isEmpty()){
        cout<<"Empty Queue\n";
        return INT_MIN;
  }
  return arr[front-1];
}
 
int main()
{
 
  //menu for operations
  //press 1 for push (with data)
  //press 2 for pop()
  //press 3 for front()
  //press 4 for size()
  //press 0 to exit()
 
  cout<<"press 1 for enQueue()\n";
  cout<<"press 2 for deQueue()\n";
  cout<<"press 3 for front()\n";
  cout<<"press 4 for size()\n";
  cout<<"press 0 for exit\n";
 
 
  int choice;
  cout<<"press your choice\n";
  cin>>choice;
  while(choice){
    if(choice==1){
      int data;
      cout<<"Enter element\n";
      cin>>data;
      enQueue(data);
    }
    else if(choice==2){
      int item=deQueue();
      if(item==INT_MIN){}
      else
      cout<<"Dequeued element: "<<item<<endl;
    }
    else if(choice==3){
      int item=queue_front();
      if(item==INT_MIN){}
      else
      cout<<"Front element: "<<item<<endl;
    }
    else if(choice==4){
      cout<<"Size is: "<<(front-rear)<<endl;
    }
    else
      cout<<"Invalid number, try again!\n";
 
 
    cout<<"press your choice\n";
    cin>>choice;
 
 
  }
 
  cout<<"Exiting...\n";
  return 0;
 
}