習題3.12 另類循環隊列 (20分)


理解

 理解:

實現循環隊列

隊首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];
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM