内容发布更新时间 : 2024/11/17 15:36:41星期一 下面是文章的全部内容请认真阅读。
/*循环队列的基本运算*/ #include
Datatype data[maxsize]; /*循环队列大小*/ int front; /*队列头指针*/ int rear; /*队列尾指针*/ }CycQue;
void InitQueue(CycQue *CQ) /*队列实始化*/ {
CQ->front=0; CQ->rear=0; }
int EmptyQueue(CycQue *CQ) /*判队列空*/ {
if(CQ->rear==CQ->front) return 1; /*队列为空,返回1.*/ else
return 0; /*队列不为空,返回0.*/ }
int EnQueue(CycQue *CQ,Datatype x) /*入队列*/ {
if((CQ->rear+1)%maxsize==CQ->front) {
printf(\队列满!\\n\);/*队列满,入队失败。*/ return 0; } else {
CQ->rear=(CQ->rear+1)%maxsize; CQ->data[CQ->rear]=x;/*入队成功*/ return 1; } }
int OutQueue(CycQue *CQ) /*出队列*/ {
if(EmptyQueue(&CQ)) /*判断队列是否为空*/ {
printf(\队列空!\\n\);
return 0; } else {
CQ->front=(CQ->front+1)%maxsize;/*不为空,出队列。*/ return 1; } }
Datatype Gethead(CycQue *CQ) /*取队列首元素*/ {
if(EmptyQueue(&CQ)) /*判断队列是否为空*/ {
printf(\); return 0; } else {
return CQ->data[(CQ->front+1)%maxsize]; } }
main() {
CycQue CQ;
InitQueue(&CQ); int i,temp;
printf(\创建队列------\\n\); for(i=1;i printf(\请输入第%d个队列元素:\\n\,i); scanf(\,&temp); EnQueue(&CQ,temp); } printf(\输出队列------\\n\); while(!EmptyQueue(&CQ)) { temp=Gethead(&CQ); OutQueue(&CQ); printf(\,temp); } }