The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+3 votes
218 views

Suppose that stacks and queues are provided as opaque data types, offering only operations to add elements, to remove elements, and to test for emptiness. Suppose that a programmer wants to count the number of elements in a given stack or queue $C$, which is currently in some state $t$, using only one auxiliary stack or queue $D$. The structures $C$ and $D$ can be used in any way possible based on the methods they offer, but $C$ must be restored to its state $t$ after counting its elements. Counting elements as described above is possible for which of the following data types?

(1) $C$ is a queue and $D$ is a queue.

(2) $C$ is a stack and $D$ is a stack.

(3) $C$ is a queue and $D$ is a stack.

  1. None
  2. $1$ and $2$ only.
  3. $1$ and $3$ only.
  4. $1$, $2$ and $3$.

 

 

asked in DS by Junior (817 points)
edited by | 218 views

1 Answer

+3 votes
Best answer

Given a queue and another queue, we can simply dequeue from one and enqueue to another - we get the same order and can get the count. Finally move all elements from D to C by repeating the same procedure.

Given a stack and a stack, we do pop from 1 and push to another. When stack is empty, we get the count and all elements in the new stack are in reverse order. Repeating the procedure from D to C will correct the order.

Given a queue and an auxiliary stack, we can get the count by moving all elements to stack. But when the elements are moved back their order is reversed. But we can again move all elements to stack and then back to queue. So, we get the count and maintain the order.

So, (d) is the answer. 

answered by Veteran (326k points)
selected by
sir,your explanation is perfectly right!

but i have a doubt though there is no need of reversing stack again..as we are interested in counting the number of element...but if we reverse it...den will the state be the same?
This is for which case? 2 or 3?
sir,dere is no scope of confusion in case 1,

and in case 2 and case 3 i am okk with steps,but i have confusion in state!what it actually mean?
State here just means, the order of elements must be the same after we finish the operation.


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

28,834 questions
36,688 answers
90,626 comments
34,641 users