设A是一个已有10个元素的栈,栈中依次是A1,A2,…,A10,栈顶是A10;B是一个已有10个元素的循环队列,队列中元素依次为B1,B2,…,B10,队头元素为B1,A,B均采用顺序结构,现要将栈中元素全部移入队列中,需( )次基本操作才能使得队列

admin2019-08-10  17

问题 设A是一个已有10个元素的栈,栈中依次是A1,A2,…,A10,栈顶是A10;B是一个已有10个元素的循环队列,队列中元素依次为B1,B2,…,B10,队头元素为B1,A,B均采用顺序结构,现要将栈中元素全部移入队列中,需(    )次基本操作才能使得队列中元素与栈中元素交替排列,即B中排列后的元素为B1,A1,B2,A2,…,B10,A10。(不必考虑存储空间)

选项 A、100
B、1 000
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
转载请注明原文地址:https://kaotiyun.com/show/MyCi777K
0

最新回复(0)