#include<iostream>
using namespace std;
#define Size 5
typedef struct RCQueue
{
char RQ[Size];
int front;
int rear;
int cout;
}RQueue;
void Initiate(RQueue * a)
{
a->cout=0;
a->front=0;
a->rear=0;
}
int AppendQueue(RQueue *a,char b)
{
if(a->cout>0 &&a->front==a->rear)
{
cout<<"the queue is full"<<endl;
return 0;
}
else
{
a->RQ[a->rear]=b;
a->rear=(a->rear+1)%Size;
a->cout++;
}
}
int DeleteQueue(RQueue *a,char &p)
{
if(a->cout==0)
{
cout<<"the queue is empty"<<endl;
return 0;
}
else
{
p=a->RQ[a->front];
a->front=a->front++;
a->cout--;
return 1;
}
}
int QueueGet(RQueue *a,char *p)
{
if(a->cout==0)
{
cout<<"the queue is empty"<<endl;
return 0;
}
else
{
*p=a->RQ[a->front];
return 1;
}
}
int QueueNotEmpty(RQueue *a)
{
if(a->cout==0) return 0;
else return 1;
}
void main()
{
RQueue a;
Initiate(&a);
AppendQueue(&a,'a');
AppendQueue(&a,'b');
AppendQueue(&a,'v');
AppendQueue(&a,'f');
AppendQueue(&a,'g');
AppendQueue(&a,'l');//插入此步溢出
char p;
DeleteQueue(&a,p);
cout<<p<<endl;
DeleteQueue(&a,p);
cout<<p<<endl;
DeleteQueue(&a,p);
cout<<p<<endl;
DeleteQueue(&a,p);
cout<<p<<endl;
DeleteQueue(&a,p);
cout<<p<<endl;
cout<<"================"<<endl;
if(!QueueNotEmpty(&a)) cout<<"empty!"<<endl;
system("pause");
}
循环队列的实现
最新推荐文章于 2023-06-10 21:44:13 发布