数组实现循环队列

来源:互联网 发布:家居装修效果图软件 编辑:程序博客网 时间:2024/05/22 06:48
#include<iostream>using namespace std;void tip(){cout<<endl<<endl<<"1 进队"<<endl;cout<<"2 出队"<<endl;cout<<"3 当前队列长度"<<endl;cout<<"4 队首元素值"<<endl;}class circle_queue{private:int* Array;int size;int front;int rear;int count;public:circle_queue(int mysize=100000){Array=new int[mysize];size=mysize;front=rear=0;count=0;}~circle_queue(){delete []Array;}bool push(int item){if((rear+1)%size==front)return false;if(count==0){Array[rear]=item; count++;return true;}else {rear=(rear+1)%size;Array[rear]=item;count++;return true;}}bool pop(int& item){if(count==0)return false;item=Array[front];front=(front+1)%size;count--;return true;}bool frontvalue(int &item){if(count==0)return false;item=Array[front];return true;}int length(){return count;}};int main(){circle_queue* my_queue=new circle_queue(4);int value;int choice;tip();while(cin>>choice){if(choice<1||choice>4){cout<<"不是有效命令!"<<endl;tip();continue;}if(choice==1){system("cls");cout<<"请输入要入队的元素值(仅限整型值)"<<endl;cin>>value;my_queue->push(value);cout<<"已经将"<<value<<"入队"<<endl;tip();}if(choice==2){system("cls");int item;my_queue->pop(item);cout<<"出队的元素:"<<item<<endl;tip();}if(choice==3){system("cls");cout<<"当前队列长度:"<<my_queue->length()<<endl;tip();}if(choice==4){system("cls");int item;my_queue->frontvalue(item);cout<<"队首元素值:"<<item<<endl;tip();}}}

原创粉丝点击