题目
答案
bool Push( ElementType X, Deque D )
{
if((D->Rear+1)%D->MaxSize==D->Front) return false;
D->Front=(D->Front-1+D->MaxSize)%D->MaxSize;
D->Data[D->Front]=X;
return true;
}
ElementType Pop( Deque D )
{
if(D->Rear==D->Front) return ERROR;
int temp;
temp=D->Data[D->Front];
D->Front=(D->Front+1)%D->MaxSize;
return temp;
}
bool Inject( ElementType X, Deque D )
{
if((D->Rear+1)%D->MaxSize==D->Front) return false;
D->Data[D->Rear]=X;
D->Rear=(D->Rear+1)%D->MaxSize;
return true;
}
ElementType Eject( Deque D )
{
if(D->Rear==D->Front) return ERROR;
D->Rear=(D->Rear-1+D->MaxSize)%D->MaxSize;
return D->Data[D->Rear];
}
注意
这道题中,头指针指向队列头元素,而尾指针则指向队列尾元素的下一个位置