题目
若用“队首指针的值和队尾指针的值相等 作为循环顺序队为空的标志,则在设置一个空队列时,只需给队首指针和队尾指针赋同一个值,不管什么值都可以。A. 正确B. 错误
若用“队首指针的值和队尾指针的值相等 作为循环顺序队为空的标志,则在设置一个空队列时,只需给队首指针和队尾指针赋同一个值,不管什么值都可以。
A. 正确
B. 错误
题目解答
答案
A. 正确
解析
循环顺序队列的空队判断通常基于队首指针和队尾指针相等。题目中提到,只要两者初始时赋相同值(无论具体数值),即可正确表示空队。关键在于理解牺牲一个空间的机制:当队列未满时,队尾指针加一后不会与队首指针冲突,从而避免空队与满队的误判。因此,初始赋值的正确性不依赖具体位置,只需保证两者相等即可。
核心思路
循环队列通过牺牲一个数组空间解决空队与满队的判据冲突:
- 空队条件:队首指针 == 队尾指针。
- 满队条件:(队尾指针 + 1) % 队列长度 == 队首指针。
详细分析
- 初始化时赋值:若队首和队尾指针赋相同值(如0),此时队列为空,满足空队条件。
- 入队操作:队尾指针后移,队列不再空。
- 满队判断:当队尾指针后移后与队首指针相等时,需通过满队条件判断是否为满,而非空队。
- 关键点:牺牲一个空间确保空队与满队判据互斥,因此初始赋值无需指定具体位置,只需保证两者相等。