在具有n个存储单元的循环队里中,队满时有n-1个元素,还有一个元素用来存储什么?
队列两端需要保留同一个元素,为了循环用
摘一段网上说的,给你
n-1个
因为如果放置n个元素,首尾指针指向同一位置,与空队列无法区别,所以循环队列中认为当尾指针的后一个指针为首指针时,判定队列为满队列,即只能保存n-1个元素
队列为空时,队头FRONT与队尾REAR相等,作循环队列用时不能将其填满,因为满了的话REAR标志又与队头标志FRONT相等了,与队列为空时的标志一样,冲突了。
这一个空位并没有存储什么东西,如果你打印出来这个空位内的元素的话,计算机会随机生成一串数字(假设你的 QElemType 是 int 型),如果你想存储 MAXQSIZE 个元素的话,可以在 SqQueue 中加入一个 count 变量来存储当前队列中的元素个数