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

问题描述:

对于循环队列,试写出求队列长度的算法.
1个回答 分类:综合 2014-09-23

问题解答:

我来补答
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
 
 
展开全文阅读
剩余:2000
下一页:请说清为什么