作业帮 > 综合 > 作业

关于数据结构的问题,说的是顺序循环队列,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/04 16:02:15
关于数据结构的问题,说的是顺序循环队列,
设顺序双向循环队列的数据结构定义为:
typedef struct
{
DataType list[MaxSize]
int front; //队头指针
int rear; //队尾指针
}BSeqCQueue;
设Q为BSeqCQueue类型的指针参数(即输出型参数),并设初始化操作时有:Q->rear=
Q->front=0,现要求:
给出顺序双向循环队列的入队列操作和出队列操作算法思想.
要程序,能放进C里面运行的,
#include
#include
#ifndef DataType
#define DataType int
#endif
#ifndef MaxSize
#define MaxSize 5
#endif
typedef struct {
DataType list[MaxSize];
int front; //队头指针
int rear; //队尾指针
}BSeqCQueue;
int in_queue(BSeqCQueue *q,DataType *d)
{
if ((q->rear+1)%MaxSize!=q->front) {
q->list[q->rear] = *d;
q->rear = (q->rear+1)%(MaxSize);
return 0;
}
else return 1;
}
int out_queue(BSeqCQueue *q,DataType *d)
{
if (q->front!=q->rear) {
*d = q->list[q->front];
q->front = (q->front+1)%MaxSize;
return 0;
}
return 1;
}
int main()
{
BSeqCQueue *Q = new(BSeqCQueue);
memset(Q,0,sizeof(*Q));//初始化操作时有:Q->rear=Q->front=0,
int i;
for (i=0; i