#include <iostream>
using namespace std;
#define MAXSIZE 4
class circular_queue{
public:
void enqueue(int num);
int dequeue();
void show();
int size();
bool full();
bool empty();
private:
int data[MAXSIZE];
int front = 0;
int end = 0;
};
void circular_queue::enqueue(int num) //入队
{
if(size()==MAXSIZE-1)
{
cout<<"队已满"<<endl;
return ;
}
data[end] = num;
end = (end+1) % MAXSIZE;
}
int circular_queue::dequeue() //出队
{
if(empty())
{
cout<<"队已空"<<endl;
return -1;
}
int key = data[front];
front = (front+1) % MAXSIZE;
return key;
}
void circular_queue::show() //展示队
{
for(int i=front;i!=size();i=(i+1)%MAXSIZE)
{
cout<<data[i]<<' ';
}
cout<<endl;
}
int circular_queue::size() //队长
{
return (end+MAXSIZE-front)%MAXSIZE;
}
bool circular_queue::full() //判满
{
return (end+1) % MAXSIZE==front;
}
bool circular_queue::empty() //判空
{
return front==end;
}
int main()
{
circular_queue q;
cout << "*****************************************************" << endl;
cout << "**********************1、入队*************************" << endl;
cout << "**********************2、出队*************************" << endl;
cout << "**********************3、展示队***********************" << endl;
cout << "**********************4、队长*************************" << endl;
cout << "**********************5、判断队空**********************" << endl;
cout << "**********************6、判断队满**********************" << endl;
cout << "**********************7、退出*************************" << endl;
cout << "*****************************************************" << endl;
while(1){
short key = 0;
cout<<"input your choice>>>";
cin>>key;
switch(key){
case 1:
cout<<"请输入入队元素>>>";
int a;
cin>>a;
q.enqueue(a);
break;
case 2:
cout<<"出队元素:"<<q.dequeue()<<endl;
break;
case 3:
q.show();
break;
case 4:
cout<<"队长:"<<q.size()<<endl;
break;
case 5:
cout<<boolalpha<<q.empty()<<endl;
break;
case 6:
cout<<boolalpha<<q.full()<<endl;
break;
case 7:
return 0;
break;
default:
cout<<"输入错误"<<endl;
}
}
return 0;
}
封装一个循环队列类
最新推荐文章于 2024-07-10 22:49:54 发布