首页 > 试题广场 >

队列queue由两个栈stack1、stack2模拟而成,入

[单选题]

队列queue由两个栈stack1stack2模拟而成,入队先进入stack1,出队从stack2出,在进行以下操作后,

queue.add(1);

queue.add(2);

queue.add(3);

queue.remove();

queue.add(4);

queue.remove();

总共调用了几次stack1stack2pushpop方法

  • 共调用push方法(包括stack1和stack2) 7次,pop方法5次
  • 共调用push方法(包括stack1和stack2) 8次,pop方法4次
  • 共调用push方法(包括stack1和stack2) 7次,pop方法4次
  • 共调用push方法(包括stack1和stack2) 8次,pop方法5次
如图,从1进,从2出。当需要remove()的时候分三步,把1里面的元素pop出来,push到2中,再从2中pop。

queue.add(1); //push 到栈1

queue.add(2);//push 1

queue.add(3);//push 1

queue.remove();//3从pop 后push到2,2pop后push到2,1pop后push到2。最后1从2的顶部pop

queue.add(4);//push 到栈1

queue.remove();//22的顶部pop

以上,共7次push 5次pop


发表于 2021-04-30 11:30:07 回复(0)