谁能给我个环形队列的函数

来源:百度知道 编辑:UC知道 时间:2024/05/11 15:19:22
给个初始化,插入,删除就够了 别给我书上的那些为函数,概念都明白,真正写写不出来 谢谢各位大大了

#include<iostream.h>
#include<stdlib.h>

#define QElemType int
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define MAXQSIZE 100

typedef struct{
QElemType *base;
int front;
int rear;
int length;
int maxsize;
}SqQueue;

int InitQueue(SqQueue &Q,int n)
{
Q.base=new QElemType[n];
if(Q.base==0)return 0;
Q.rear=Q.front=0;
Q.length=0;
Q.maxsize=n;
return 1;
}//构造空队列Q

int QueueLength (SqQueue Q){
return (Q.rear -Q.front +MAXQSIZE) % MAXQSIZE;
}//返回Q的元素个数,即队列的长度

int EnQueue(SqQueue &Q,QElemType e)
{
if(Q.length==Q.maxsize)return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rear++)%Q.maxsize ;
Q.length++;
return 1;
}//插入元素e为Q的新的队尾元素

int DeQueue(SqQueue &Q,QElemType &e)
{
if(Q.length==0)return 0;
e=Q.base[Q.front];
Q.front=(Q.front+1