您的位置:首页 > 其它

数组实现循环队列

2012-11-11 20:18 603 查看
#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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: