作业帮 > 综合 > 作业

对于循环队列,试写出求队列长度的算法.

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/10 02:59:58
对于循环队列,试写出求队列长度的算法.
对于循环队列,试写出求队列长度的算法.
include
using namespace std;
#define MAX_QSIZE 5
typedef int ElemType;
typedef struct SqQueue //循环队列结构体定义
{
ElemType *base;
int front;
int rear;};
void InitQueue(SqQueue *&Q)
{
Q=(SqQueue *)malloc(MAX_QSIZE*sizeof(SqQueue));
Q->rear=Q->front;
}
int EmptyQueue(SqQueue *Q)
{
if(Q->rear==Q->front)
return 0;
else return 1;
}
void DestroyQueue(SqQueue *Q)
{
if(Q->base) free(Q->base);
Q->base=NULL;
Q->front=Q->rear;
}
void ClearQueue(SqQueue *Q)
{
Q->rear=Q->front;
}
int LenghtQueue(SqQueue *Q) //求队列长度函数
{
return (Q->front-Q->rear+MAX_QSIZE)%MAX_QSIZE;
}
int EnQueue(SqQueue *&Q,ElemType &e) //入队操作
{
if((Q->rear+1)%MAX_QSIZE==Q->front)
return 0;
else Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAX_QSIZE;
return 1;
}
int DeQueue(SqQueue *&Q,ElemType &e) //出队操作
{
if(Q->rear==Q->front)
return 0;
else e=Q->base[Q->front];
cout