循环队列

来源:互联网 发布:网络视听内容审核通则 编辑:程序博客网 时间:2024/05/18 03:46

#include<iostream>
using namespace std;

#define MAXSIZE 3

typedef int datatype;
typedef struct
{
 datatype data[MAXSIZE];
 int rear,front;
 int num;
}
CSeQueue;

int main()
{
 int Input(CSeQueue *q,datatype x);
 int Out(CSeQueue *q,datatype x);

 CSeQueue *q;
 q=new CSeQueue;
 q->front=MAXSIZE;
 q->rear=MAXSIZE;
 q->num=0;

 datatype x;

 while(Input(q,x));

 while(Out(q,x));
 
 return 0;
}

int Input(CSeQueue *q,datatype x)
{
 if(q->num==MAXSIZE)
 {
  cout<<"队满!"<<endl;
  return 0;
 }
 cin>>x;
 q->rear=(q->rear+1)%MAXSIZE;
 q->data[q->rear]=x;
 q->num++;
 return 1;
}

int Out(CSeQueue *q,datatype x)
{
 if(q->num==0)
 {
  cout<<"队空!"<<endl;
  return 0;
 }
 q->front=(q->front+1)%MAXSIZE;
 x=q->data[q->front];
 cout<<x<<" ";
 q->num--;
 return 1;
}


 

0 0
原创粉丝点击