关于数据结构的问题,说的是顺序循环队列,希望大家帮帮我,急求!~~~

设顺序双向循环队列的数据结构定义为:typedefstruct{DataTypelist[MaxSize]intfront;//队头指针intrear;//队尾指针}BS... 设顺序双向循环队列的数据结构定义为:
typedef struct
{
DataType list[MaxSize]
int front; //队头指针
int rear; //队尾指针
}BSeqCQueue;
设Q为BSeqCQueue类型的指针参数(即输出型参数),并设初始化操作时有:Q->rear=
Q->front=0,现要求:
给出顺序双向循环队列的入队列操作和出队列操作算法思想。

要程序,能放进C里面运行的,谢谢啦
展开
 我来答
myeset
2011-01-10 · TA获得超过593个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:294万
展开全部
#include <iostream>
#include <cstring>

#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<6; i++) {
if (in_queue(Q, &i)!=0) {
std::cout << "Error in_queue\n";
}
}
DataType d;
for (i=0; i<6; i++) {
if ((out_queue(Q, &d))==0) {
std::cout << d << std::endl;
}
else {
std::cout << "Error out_queue\n";
}
}

delete Q;
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式