问题
单项选择题
设A是一个已有10个元素的栈,栈中依次是A1,A2,…,A10,栈顶是A10;B是一个已有10个元素的循环队列,队列中元素依次为B1,B2,…,B10,队头元素为B1。A,B均采用顺序结构,现要将栈中元素全部移入队列中,需______次基本操作才能使得队列中元素与栈中元素交替排列,即B中排列后的元素为B1,A1,B2,A2,…,B10,A10。(不必考虑存储空间)
A.100
B.1000
C.50
D.20
答案
参考答案:A
解析: 操作如下:
(1)先将栈中所有元素出栈(10次),入队列(10次),栈为空,队列中的元素为B1,B2,…,B10,A10,A9,…,A1;
(2)将B1,B2,B3,…,B10出队列(10次),入队列(10次),则队列变为A10,…,A2,A1,B1,B2,…,B10;
(3)将A10,A9,…,A1出队列(10次),入栈(10次),栈中自栈底至栈顶依次为A10,…,A3,A2,A1,队列中剩下B1,B2,…,B10;
(4)重复执行10次B1出队列(1次),入队列(1次),Ai出栈(1次),入队(1次),则最终得到B1,A1,B2,A2,…,B10,A10。