循环队列的实现

来源:互联网 发布:店铺怎么用淘宝客 编辑:程序博客网 时间:2024/06/06 01:23
#include<iostream>using namespace std;#define Size 5typedef 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");}

0 0