#include#include #include typedef int Status; #define OK 1 #define ERROR 0 #define OVERFLOW -1 using namespace std; #define MAXQSIZE 6 typedef struct ElemType{ int data; }ElemType; typedef struct SeqQueue{ ElemType *pbase; int front; int rear; }SeqQueue; class ClassSeqQueueManager{ public: Status InitQueue(SeqQueue &Q){ Q.pbase=(ElemType *)malloc(MAXQSIZE*sizeof(ElemType)); Q.front=0; Q.rear=0; return OK; } Status InQueue(SeqQueue &Q,ElemType e){ if((Q.rear+1)%MAXQSIZE==Q.front) return ERROR; Q.pbase[Q.rear]=e; Q.rear=(Q.rear+1)%MAXQSIZE; return OK; } Status OutQueue(SeqQueue&Q,ElemType &e){ if(Q.front==Q.rear) return ERROR;//空队列 e=Q.pbase[Q.front]; Q.front=(Q.front+1)%MAXQSIZE; return OK; } };
顺序队列-测试样例最多可容纳MAXQSIZE-1个元素
void test(){
ClassSeqQueueManager CSQM;
struct SeqQueue sq;
CSQM.InitQueue(sq);
for(int i=0;i<5;i++){
ElemType e;
e.data=i;
CSQM.InQueue(sq,e);
}
for(int i=0;i<5;i++){
ElemType e;
CSQM.OutQueue(sq,e);
cout<
linked queue
#include
#include
#include
using namespace std;
#define MAXQSIZE 6
typedef int Status;
#define OK 1
#define ERROR 0
#define OVERFLOW -1
typedef struct
{
int data;
}ElemType;
typedef struct LNode//单链表节点
{
ElemType data;//数据域
struct LNode* next;//指针域
}LNode, *QueuePtr;
typedef struct linkQueue{
QueuePtr front;
QueuePtr rear;
}linkQueue;
class ClasslinkedQueueManager{
public:
Status InitQueue(linkQueue &Q){
Q.front=Q.rear=(LNode*)malloc(sizeof(LNode));
if(Q.front==NULL) exit(OVERFLOW);
Q.front->next=NULL;
return OK;
}
Status InQueue(linkQueue &Q,ElemType e){
LNode *s=(LNode*)malloc(sizeof(LNode));
if(s==NULL) exit(OVERFLOW);
s->data=e;
Q.rear->next=s;
Q.rear=s;
return OK;
}
Status OutQueue(linkQueue &Q,ElemType &e){
if(Q.front==Q.rear) return ERROR;
LNode* p=Q.front->next;
e=p->data;
Q.front->next=p->next;
if(Q.rear==p) Q.rear=Q.front;//if front->p=rear
free(p);
return OK;
}
};
测试
void test(){
ClasslinkedQueueManager CLQM;
linkQueue lq;
CLQM.InitQueue(lq);
for(int i=0;i<5;i++){
ElemType e;
e.data=i;
CLQM.InQueue(lq,e);
}
for(int i=0;i<5;i++){
ElemType e;
CLQM.OutQueue(lq,e);
cout< 


