解题代码
bool AddQ(Queue Q, ElementType X) {
if (Q->Count == Q->MaxSize) {
printf("Queue Full\n");
return false;
}
else {
Q->Data[(Q->Count+Q->Front)%Q->MaxSize] = X;
Q->Count++;
return true;
}
}
ElementType DeleteQ(Queue Q) {
if (!Q->Count) {
printf("Queue Empty\n");
return ERROR;
}
else {
Q->Front = (Q->Front + 1) % Q->MaxSize;
Q->Count--;
return Q->Data[(Q->Front-1+Q->MaxSize)%Q->MaxSize];
}
}
测试结果
问题整理
1.循环队列类问题要注意index要通过取余得到,且取余之前一定要保证被取余数大于零。