📄 6循环顺序队列的操作.cpp
字号:
#include<iostream.h>
#define MaxSize 100
struct cqueue
{
int data[MaxSize];
int rear,front,num;
};
int In_SeQueue(cqueue* &q, int &x)
{
if(q->num==MaxSize)
{
cout<<"表满!"<<endl;
return -1;
}
else
{
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=x;
q->num++;
return 1;
}
}
int Out_SeQueue(cqueue* &q,int &x)
{
if(q->num==0)
{
cout<<"对空!"<<endl;
return -1;
}
else
{
q->front=(q->front+1)%MaxSize;
x=q->data[q->front];
q->num--;
return 1;
}
}
cqueue* Init_SeQueue()
{
cqueue *q;
int x;
q=new cqueue;
q->front=q->rear=MaxSize-1;
q->num=0;
cout<<"创建循环队列,输入数据,以-1结束:"<<endl;
cin>>x;
while(x!=-1)
{
if(In_SeQueue(q,x)==-1)
break;
cin>>x;
}
return q;
}
void Print(cqueue *q)
{
int x;
if(q->rear<q->front)
{
cout<<"队列的数据为:";
for(x=q->front+1;x<=MaxSize-1;x++)
cout<<q->data[x]<<" ";
for(x=0;x<=q->rear;x++)
cout<<q->data[x]<<" ";
cout<<endl;
}
else
{
cout<<"队列的数据为:";
for(x=q->front+1;x<=q->rear;x++)
cout<<q->data[x]<<" ";
cout<<endl;
}
}
void main()
{
cqueue* q;
int x;
q=Init_SeQueue();
Print(q);
cout<<"输入入队的数据,以-1结束:"<<endl;
cin>>x;
while(x!=-1)
{
if(In_SeQueue(q,x)==-1)
break;
cin>>x;
}
Print(q);
Out_SeQueue(q,x);
cout<<"数据"<<x<<"出队!"<<endl;
Out_SeQueue(q,x);
cout<<"数据"<<x<<"出队!"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -