循环队列

来源:互联网 发布:淘宝如何代运营 编辑:程序博客网 时间:2024/06/01 07:44
#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;

}




0 0
原创粉丝点击