#include<bits/stdc++.h>
using namespace std;
#define maxx 110
struct sqqueue{
int front;
int rear;
int *base;
};
int InitQueue(sqqueue &q)
{
q.base=(int *)malloc(maxx*sizeof(int));
if(!q.base)return 0;
q.front=q.rear=0;
return 1;
}
int QueueLength(sqqueue q)
{
return (q.rear-q.front+maxx)%maxx;
}
int EnQueue(sqqueue &q,int e)
{
if((q.rear+1)%maxx==q.front)
return 0;
q.base[q.rear]=e;
q.rear=(q.rear+1)%maxx;
return 1;
}
int DeQueue(sqqueue &q,int &e)
{
if(q.front==q.rear)return 0;
e=q.base[q.front];
q.front=(q.front+1)%maxx;
return 1;
}
int GetHead(sqqueue q)//取循环队列的队头元素
{
if(q.front!=q.rear)
{
return q.base[q.front];
}
}
int main()
{
sqqueue sq;
InitQueue(sq);
int n,x;
cout<<"输入你要添加的元素的个数:"<<endl;
cin>>n;
cout<<"输入你要添加的元素:"<<endl;
for(int i=1;i<=n;i++){
cin>>x;
EnQueue(sq,x);
}
cout<<"输出队头元素:"<<endl;
cout<<GetHead(sq)<<endl;
cout<<"出队两个元素后输出队头元素。"<<endl;
int e;
DeQueue(sq,e);
DeQueue(sq,e);
cout<<GetHead(sq)<<endl;
cout<<"输出队列的长度:"<<endl;
cout<<QueueLength(sq);
return 0;
}
循环队列的基本操作
最新推荐文章于 2023-04-18 18:32:28 发布