【2011年全国试题3】已知循环队列存储在一维数组A[0…n-1],且队列非空时,front和rear分别指向队头元素和队尾元素。若初始时队列为空,且
【2011年全国试题3】已知循环队列存储在一维数组A[0…n-1],且队列非空时,front和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是(B)
A. 0, 0 B. 0, n-1 C. n-1, 0 D. n-1, n-1
首先理解"队列非空时,front和rear分别指向队头元素和队尾元素"。当队列中有一个元素时,front与rear都需要指向A[0]。我们知道,无论是在存入元素前移动rear还是存入元素后移动rear,最终的状态都是,rear移动了,即执行了(rear+1)%n运算。
当队列中有一个元素时,front与rear都指向A[0]。这是执行完(rear+1)%n运算后的状态,那么没有执行前就是初始状态。rear=n-1。
对于front来说,没有出队操作,不需要移动front,存入一个元素时,front没有动,也就是仍然是初始状态,所以front=0。
答案参考百度知道网友的回答http://zhidao.baidu.com/question/1962019237865543580