//实现遍历队列元素的算法 Qtra(SqQuene Q)
//这里的 visit() 函数为访问函数
//我构造的visit函数的功能是将队列的元素打印出来
#define MAX 100 //最大队列长度
typedef struct{
int *base; //初始化的动态分配存储空间
int front;
int rear; //尾指针
}SqQuene;
//以下为我构造的访问元素函数
void visit(char a){ //假设已知队列元素为 char型
cout<<a;
}
//以下为遍历算法
void Qtra(SqQuene Q){ //注意我这里并不传入 &Q 因为我遍历并不想改变原来Q的头尾指针的值
if(Q.front == Q.rear){
cout<<"队列为空"<<endl; //先判断是否为空队列
return ;
}
while(Q.front != Q.rear){ //直到头尾指针重合为止,证明遍历循环队列完成
visit(Q.base[Q.front]);
Q.front = (Q.front+1)%MAX; //取模达到循环的效果
}
return ;
}