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;
}

