2016-10-09 62 views
0

假設我使用數組實現循環隊列。我如何計算隊列的大小?我的意思是指前部和後部之間的元素數量。我想使用模操作。使用mod的循環隊列大小

我有陣列的能力,以及隊列前後的位置。我不知道現在該做什麼。

回答

1

如何計算隊列的大小?

我會用

size = (start - end + mod) % mod; 

這是假定緩衝區永遠不會完全的能力。另一種方式是使用不帶更改的開始和結束

size = lastWriteIndex - nextReadIndex; 

當您查找索引時,可以對這些值進行修改。

+0

'size =(end - start + mod)%mod;'? – saka1029

+0

@ saka1029對於循環緩衝區,起始索引可以在結束索引之前。 –

+0

你的意思是'start'是'lastWriteIndex'嗎? – saka1029