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

📅  最后修改于: 2021-09-25 06:34:21             🧑  作者: 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 是进程中分别执行的 push 和 pop 操作的数量。以下哪一项对所有 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答案:(一)
说明:同 https://www.geeksforgeeks.org/data-structures-queue-question-10/
这个问题的测验