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