可能重复:
how to find number of elements in a Circular Queue循环队列大小
我实现一个循环队列,但我不能得到正确的队列的大小。 我发现了一个关于同一问题的前一个主题,提出的解决方案是使用两个指针,并增加第二个指针,但它不指向与第一个指针相同的对象。但我认为这个appoach只有在队列中有不同的对象时才能工作。就我而言,所有的对象都是相似的。我怎样才能得到循环队列的大小? 这个公式不为我工作太:
int size = abs(m_front -m_tail) ;
凡m_front和m_tail是尾部和前队列索引。
感谢
问:你的队列实现为一个数组吗?如果它只是一个链表,那么你可以做的最好的决定是什么时候front == tail;你*不能*确定“大小”,除非你自己保持计数。 – paulsm4
同一个:http://stackoverflow.com/questions/4459141/how-to-find-number-of-elements-in-a-circular-queue –
@ paulsm4:是的,它是作为一个数组实现的。当front == tail时,它只是表示数组是空的。 – Galileo