
理解:
實現循環隊列
隊首Q->Front=(Q->Front+1)%Q->MaxSize;
隊尾Q->Rear=(Q->Front+Q->Count)%Q->MaxSize;
刪除操作:移動隊首,計數器Count--;
插入操作:先執行計數器Count++,在執行向后移動隊尾(這里也可以先移動隊尾,后執行Count++,知識刪除操作取出數的下標要變化);
注意:隊首默認為0;
bool AddQ(Queue Q,ElementType X)
{
if(Q->MaxSize==Q->Count)
{
printf("Queue Full\n");
return false;
}
Q->Count++;
Q->Data[(Q->Front+Q->Count)%Q->MaxSize]=X;
return true;
}
ElementType DeleteQ(Queue Q)
{
if(Q->Count==0)
{
printf("Queue Empty\n");
return ERROR;
}
Q->Count--;
Q->Front=(Q->Front+1)%Q->MaxSize;
return Q->Data[Q->Front];
}
