也就是说,可以用队列中元素个数代替队尾指针。设计出这种环形队列的入队、出队算法。
组合提交代码(仅支持C++)
#include <stdio.h>
#include<iostream>
#include <malloc.h>
using namespace std;
#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int front; //队头指针
int count; //队列中元素个数
} QuType;
void InitQueue(QuType *&qu) //初始化队运算算法
{ qu=(QuType *)malloc(sizeof(QuType));
qu->front=0;
qu->count=0;
}
void DestroyQueue(QuType *&qu)
{
free(qu);
}
bool EnQueue(QuType *&qu,ElemType x) //进队运算算法
{/**************begin************/
/**************end************/
}
bool DeQueue(QuType *&qu,ElemType &x) //出队运算算法
{/**************begin************/
/**************end************/
}
bool QueueEmpty(QuType *qu) //判队空运算算法
{
return(qu->count==0);
}
int main()
{
QuType *q;
ElemType e;
InitQueue(q);
EnQueue(q,1);
EnQueue(q,2);
EnQueue(q,3);
EnQueue(q,4);
printf("出队顺序:");
while (!QueueEmpty(q))
{
DeQueue(q,e);
printf("%d ",e);
}
printf("\n");
DestroyQueue(q);
return 1;
}