循环队列

#include<iostream>
#include<math.h>
using namespace std;
#define max 5
typedef int Qelemtype;
typedef  struct {
Qelemtype *base;
int front;
int rear;
}queue;
int Init(queue &Q){
Q.base=(Qelemtype*)malloc(max*sizeof(Qelemtype));
Q.front=0;
Q.rear=0;
return 0;
}
int length(queue &Q){
return fabs((Q.rear%max)-(Q.front%max));
}
int EnQueue(queue &Q,Qelemtype e){
if(Q.rear%max+1==Q.front%max) return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%max;
return 1;
}
int Dequeue(queue &Q,Qelemtype &e){
if(Q.front==Q.rear)return 0;
e=Q.base[Q.front];
Q.front=(Q.front+1)%max;
return 1;
}
int shuchu(queue &Q){
int i=Q.front;
while(i!=Q.rear){
cout<<Q.base[i]<<"  ";
i++;i=i%max;}
return 0;
}
int main(){
queue Q;
Init(Q);
while(1){
cout<<"1表示入队,2表示出队";
int n;
cin>>n;
switch(n)
{
case 1:{cout<<"输入入队的元素";cin>>n;EnQueue(Q,n);shuchu(Q);cout<<endl;break;}
case 2:{Dequeue(Q,n);cout<<n<<"出队   ";cout<<"出队后队列:";shuchu(Q);cout<<endl;break;}
default: break;
}
}
return 0;

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值