Responsive image

问题 C: 设计出环形队列的入队、出队算法

问题 C: 设计出环形队列的入队、出队算法

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

对于环形队列来说,如果知道队头指针和队列中元素个数,则可以计算出队尾指针。
也就是说,可以用队列中元素个数代替队尾指针。设计出这种环形队列的入队、出队算法。
组合提交代码(仅支持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;
}


输入描述

注意分析主程序中给出的输入输出要求

输出描述

注意分析主程序中给出的输入输出要求

提示


组合提交代码,你只需要提交



bool EnQueue(QuType *&qu,ElemType x) //进队运算算法

{/**************begin************/









    /**************end************/

}

bool DeQueue(QuType *&qu,ElemType &x) //出队运算算法

{/**************begin************/









    /**************end************/

}


[提交][状态]
ACM算法攻关部