GATE CSE
First time here? Checkout the FAQ!
x
+7 votes
576 views

Suppose you are given an implementation of a queue of integers. The operations that can be performed on the queue are:

  1. isEmpty (Q) — returns true if the queue is empty, false otherwise.
  2. delete (Q) — deletes the element at the front of the queue and returns its value.
  3. insert (Q, i) — inserts the integer i at the rear of the queue.

Consider the following function:

void f (queue Q) {
int i ;
if (!isEmpty(Q)) {
   i = delete(Q);
   f(Q);
   insert(Q, i);
  }
}

What operation is performed by the above function f ?

  1. Leaves the queue Q unchanged
  2. Reverses the order of the elements in the queue Q
  3. Deletes the element at the front of the queue Q and inserts it at the rear keeping the other elements in the same order
  4. Empties the queue Q
asked in DS by Veteran (19.2k points)   | 576 views

4 Answers

+11 votes
Best answer

insert() will inserts the value in just reverse order.

answered by Veteran (53.8k points)  
selected by
+5 votes
ans b)
answered by Boss (5.3k points)  
+4 votes
answer will be b.

explanation...

assume a queue of element 1 2 3 4 5...

now as Q is not empty it will delete 1 and 1 will be sored in i and den again f(Q) will be called which contains element 23456...but the trace (activation of inset (Q,1)) remains.it continues till 5 is deleted and again activation is executed by inserting q(5)...to q(1),,,thus reversing the queue
answered by Boss (8.4k points)  
is ny other better approach to understand it ?
0 votes
Answer: B
answered by Veteran (34.2k points)  


Top Users May 2017
  1. akash.dinkar12

    3302 Points

  2. pawan kumarln

    1776 Points

  3. Bikram

    1646 Points

  4. sh!va

    1640 Points

  5. Arjun

    1396 Points

  6. Devshree Dubey

    1272 Points

  7. Debashish Deka

    1142 Points

  8. Angkit

    1044 Points

  9. LeenSharma

    1000 Points

  10. Arunav Khare

    754 Points

Monthly Topper: Rs. 500 gift card
Top Users 2017 May 22 - 28
  1. Bikram

    732 Points

  2. Arnab Bhadra

    402 Points

  3. pawan kumarln

    402 Points

  4. bharti

    304 Points

  5. LeenSharma

    238 Points


22,823 questions
29,142 answers
65,209 comments
27,666 users