Skip to content
Related Articles

Related Articles

Data Structures | Queue | Question 1

View Discussion
Improve Article
Save Article
  • Last Updated : 08 Jan, 2013

Following is C like pseudo code of a function that takes a Queue as an argument, and uses a stack S to do processing.

void fun(Queue *Q)
    Stack S;  // Say it creates an empty stack S
    // Run while Q is not empty
    while (!isEmpty(Q))
        // deQueue an item from Q and push the dequeued item to S
        push(&S, deQueue(Q));
    // Run while Stack S is not empty
    while (!isEmpty(&S))
      // Pop an item from S and enqueue the poppped item to Q
      enQueue(Q, pop(&S));

What does the above function do in general?
(A) Removes the last from Q
(B) Keeps the Q same as it was before the call
(C) Makes Q empty
(D) Reverses the Q

Answer: (D)

Explanation: The function takes a queue Q as an argument. It dequeues all items of Q and pushes them to a stack S. Then pops all items of S and enqueues the items back to Q. Since stack is LIFO order, all items of queue are reversed.

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!