📜  门| GATE-CS-2006 |第49章

📅  最后修改于: 2021-06-29 03:02:19             🧑  作者: Mango

下面给出了使用两个堆栈S1和S2的队列Q的实现:

void insert(Q, x) {
   push (S1, x);
}
   
void delete(Q){
   if(stack-empty(S2)) then 
      if(stack-empty(S1)) then {
          print(“Q is empty”);
          return;
      }
      else while (!(stack-empty(S1))){
          x=pop(S1);
          push(S2,x);
      }
   x=pop(S2);
}

令n插入和m(<= n)删除操作以任意顺序在空队列Q上执行。令x和y为分别在该过程中执行的推入和弹出操作的数量。对于所有m和n,以下哪一项是正确的?
(A) n + m <= x <2n和2m <= y <= n + m
(B) n + m <= x <2n和2m <= y <= 2n
(C) 2m <= x <2n和2m <= y <= n + m
(D) 2m <= x <2n和2m <= y <= 2n答案: (A)
说明:与http://quiz.geeksforgeeks.org/data-structures-queue-question-10/
这个问题的测验