in DS edited by
24,177 views
22 votes
22 votes

What is the minimum number of stacks of size $n$ required to implement a queue of size $n$?

  1. One
  2. Two
  3. Three
  4. Four
in DS edited by
24.2k views

4 Comments

@Lakshman Patel RJIT

>can't we use recursion for reversing?then only one stack excluding System stack isn't?

>min Queue to imp Stack will also be same right?

0
0
3
3
recursion is an implementation of stack.
0
0

7 Answers

36 votes
36 votes
Best answer

A queue can be implemented using two stacks.

Let queue be represented as " $q$ "
and stacks used to implement $q$ be "stack1" and "stack2".

$q$ can be implemented in two ways:

Method 1 (By making EnQueue operation costly)

This method makes sure that newly entered element is always at the bottom of stack 1, so that deQueue operation just pops from stack1. To put the element at top of stack1, stack2 is used.

$enQueue(q, x)$

  1. While stack1 is not empty, push everything from stack1 to stack2.
  2. Push $x$ to stack1 (assuming size of stacks is unlimited).
  3. Push everything back to stack1.

$dnQueue(q)$

  1. If stack1 is empty then error
  2. Pop an item from stack1 and return it


Method 2 (By making deQueue operation costly)

In this method, in en-queue operation, the new element is entered at the top of stack1. In de-queue operation, if stack2 is empty then all the elements are moved to stack2 and finally top of stack2 is returned.
$enQueue(q,  x)$

  1. Push $x$ to stack1 (assuming size of stacks is unlimited).

$deQueue(q)$

  1. If both stacks are empty then error.
  2. If stack2 is empty
    While stack1 is not empty, push everything from stack1 to stack2.
  3. Pop the element from stack2 and return it.

Correct Answer: $B$

edited by

2 Comments

in method 1), newly entered element is being entered at bottom of stack1, not on top. on top there is most old element which being popped first.
2
2
Corrected. Thanks :)
1
1
11 votes
11 votes
ans b)

1 comment

is it a theory or any explanation is present?
2
2
7 votes
7 votes
Two stacks we need to implement one queue
4 votes
4 votes

Two stacks of size n required to implement a queue of size n

Answer:

Related questions