2个回答
展开全部
include<iostream>
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<<e<<endl;
Q->front=(Q->front+1)%MAX_QSIZE;
return 1;
}
int main()
{
SqQueue *Q; InitQueue(Q);
int a[9]={0,1,2,3,4,5,6,7,8};
for(int i=0;i<9;i++)
{
EnQueue(Q,a[i]);
}
cout<<LengthQueue(Q)<<endl; return 0;
for(i=0;i<9;i++)
{
DeQueue(Q,a[i]);
}
}
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<<e<<endl;
Q->front=(Q->front+1)%MAX_QSIZE;
return 1;
}
int main()
{
SqQueue *Q; InitQueue(Q);
int a[9]={0,1,2,3,4,5,6,7,8};
for(int i=0;i<9;i++)
{
EnQueue(Q,a[i]);
}
cout<<LengthQueue(Q)<<endl; return 0;
for(i=0;i<9;i++)
{
DeQueue(Q,a[i]);
}
}
2013-12-24
展开全部
int Queuelen(SqQueue Q)
{ if(Q.rear>Q.front)
return Q.rear-Q.front;
else
return MAX_QSIZE-(Q.front-Q.rear);//MAXSIZE是循环队列的初始分配的最大空间
}
{ if(Q.rear>Q.front)
return Q.rear-Q.front;
else
return MAX_QSIZE-(Q.front-Q.rear);//MAXSIZE是循环队列的初始分配的最大空间
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询