Re: [algogeeks] Re: Implement a queue using a stack

2010-04-14 Thread Ashish Mishra
if two stacks then possible
otherwise i dont think so

On Mon, Apr 12, 2010 at 11:39 PM, Dheeraj Jain dheerajj...@gmail.comwrote:

 Here is code and explanation http://geeksforgeeks.org/?p=5009


 On Sat, Apr 10, 2010 at 10:18 PM, Rohit Saraf rohit.kumar.sa...@gmail.com
  wrote:

 hmm... that can always be done !

 --
 Rohit Saraf
 Second Year Undergraduate,
 Dept. of Computer Science and Engineering
 IIT Bombay
 http://www.cse.iitb.ac.in/~rohitfeb14http://www.cse.iitb.ac.in/%7Erohitfeb14


 On Wed, Mar 24, 2010 at 6:24 PM, Dave dave_and_da...@juno.com wrote:

 Please post your results. I'd like to study your algorithm.

 On Mar 23, 11:15 pm, chitta koushik koushik.infin...@gmail.com
 wrote:
  yeah i understand that . still wanted to attempt writing a
 recursive
  reverse() stack operation.
 
  On Wed, Mar 24, 2010 at 9:21 AM, Rohit Saraf 
 rohit.kumar.sa...@gmail.comwrote:
 
 
 
   Even when you are writing a recursive function.. you are not using
 one
   stack.
   One stack is yours. Other used for recursion.
 
   Making queue from a single stack =  Making turing machine from CFG.
 
   -Rohit
 
   On Wed, Mar 24, 2010 at 9:18 AM, chitta koushik 
   koushik.infin...@gmail.com wrote:
 
   Can we implement it using a single stack by writing  a recursive
 reverse
   stack operation ?
 
   On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh 
 singh.sund...@gmail.comwrote:
 
   Thanks Dave, I didn't think about this... definitely better!
 
   Sundeep.
 
   On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com
 wrote:
 
   Better still.
   To enqueue: push onto stack A.
   For dequeuing: If stack B is empty, pop all items from stack A and
   push onto stack B. Then pop stack B.
   There is no need to push remaining items back to stack A.
 
   As every item passes through the queue, it is pushed onto stack A,
   then popped from stack A and pushed onto stack B, and finally
 popped
   from stack B. The time is roughly twice the time required for a
 direct
   implementation of a queue.
 
   There is room for a little optimization if both stacks are empty
 when
   enquing, as you can push the item directly onto stack B.
 Furthermore,
   when popping from stack A and pushing onto stack B, you don't need
 to
   push the last item popped, as it is the return value.
 
   Dave
 
   On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com
 wrote:
Hey Brian,
 
Better still, for inserting in queue, just keep pushing onto the
 stack
   A.
You need stack B only for dequeuing: for dequeuing, push all
 items
   into
stack B, pop as many as you want from stack B and then push back
 all
remaining items in stack A.
 
Regards,
Sundeep.
 
On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com
 wrote:
   How is it possible to implement a queue using a stack only?
 
 Interesting, but tricky... You need two stacks as Prakhar
 stated...
 In general, if you have Stack A and Stack B, you should keep
 all the
   items
 in stack A and then use stack B for processing.
 
 For example to insert an item:
 1. Pop all the items from A  and then push them into B (this
 should
   push
 the items into Stack B in reverse order)
 2. Insert the new item into A
 3. Pop all the items in B and push them back into A (again
 this will
   push
 them back into Stack B in reverse order)
 
 Running time should be O(1)+O(2n), which is O(n) for larger
 values
   of n -
 which is not good...
 
 To retrieve an item, pop the first item in stack A
 
 Hope  this helps -
 Regards
 B
 
 On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
 By a do u mean a single stack ?
 Otherwise if you use 2 its v simple
 
 Best,
 Prakhar Jain
http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
   http://web.iiit.ac.in/%7Eprakharjain/
 
 On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
   pushpes...@gmail.comwrote:
 
 How is it possible to implement a queue using a stack only?
 
 --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to
 algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   algogeeks%2bunsubscr...@googlegroups­.com
 .
 For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.
 
 --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to
 algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 

Re: [algogeeks] Re: Implement a queue using a stack

2010-04-12 Thread Dheeraj Jain
Here is code and explanation http://geeksforgeeks.org/?p=5009

On Sat, Apr 10, 2010 at 10:18 PM, Rohit Saraf
rohit.kumar.sa...@gmail.comwrote:

 hmm... that can always be done !

 --
 Rohit Saraf
 Second Year Undergraduate,
 Dept. of Computer Science and Engineering
 IIT Bombay
 http://www.cse.iitb.ac.in/~rohitfeb14http://www.cse.iitb.ac.in/%7Erohitfeb14


 On Wed, Mar 24, 2010 at 6:24 PM, Dave dave_and_da...@juno.com wrote:

 Please post your results. I'd like to study your algorithm.

 On Mar 23, 11:15 pm, chitta koushik koushik.infin...@gmail.com
 wrote:
  yeah i understand that . still wanted to attempt writing a recursive
  reverse() stack operation.
 
  On Wed, Mar 24, 2010 at 9:21 AM, Rohit Saraf 
 rohit.kumar.sa...@gmail.comwrote:
 
 
 
   Even when you are writing a recursive function.. you are not using one
   stack.
   One stack is yours. Other used for recursion.
 
   Making queue from a single stack =  Making turing machine from CFG.
 
   -Rohit
 
   On Wed, Mar 24, 2010 at 9:18 AM, chitta koushik 
   koushik.infin...@gmail.com wrote:
 
   Can we implement it using a single stack by writing  a recursive
 reverse
   stack operation ?
 
   On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh 
 singh.sund...@gmail.comwrote:
 
   Thanks Dave, I didn't think about this... definitely better!
 
   Sundeep.
 
   On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com
 wrote:
 
   Better still.
   To enqueue: push onto stack A.
   For dequeuing: If stack B is empty, pop all items from stack A and
   push onto stack B. Then pop stack B.
   There is no need to push remaining items back to stack A.
 
   As every item passes through the queue, it is pushed onto stack A,
   then popped from stack A and pushed onto stack B, and finally
 popped
   from stack B. The time is roughly twice the time required for a
 direct
   implementation of a queue.
 
   There is room for a little optimization if both stacks are empty
 when
   enquing, as you can push the item directly onto stack B.
 Furthermore,
   when popping from stack A and pushing onto stack B, you don't need
 to
   push the last item popped, as it is the return value.
 
   Dave
 
   On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
Hey Brian,
 
Better still, for inserting in queue, just keep pushing onto the
 stack
   A.
You need stack B only for dequeuing: for dequeuing, push all
 items
   into
stack B, pop as many as you want from stack B and then push back
 all
remaining items in stack A.
 
Regards,
Sundeep.
 
On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com
 wrote:
   How is it possible to implement a queue using a stack only?
 
 Interesting, but tricky... You need two stacks as Prakhar
 stated...
 In general, if you have Stack A and Stack B, you should keep
 all the
   items
 in stack A and then use stack B for processing.
 
 For example to insert an item:
 1. Pop all the items from A  and then push them into B (this
 should
   push
 the items into Stack B in reverse order)
 2. Insert the new item into A
 3. Pop all the items in B and push them back into A (again this
 will
   push
 them back into Stack B in reverse order)
 
 Running time should be O(1)+O(2n), which is O(n) for larger
 values
   of n -
 which is not good...
 
 To retrieve an item, pop the first item in stack A
 
 Hope  this helps -
 Regards
 B
 
 On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
 By a do u mean a single stack ?
 Otherwise if you use 2 its v simple
 
 Best,
 Prakhar Jain
http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
   http://web.iiit.ac.in/%7Eprakharjain/
 
 On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
   pushpes...@gmail.comwrote:
 
 How is it possible to implement a queue using a stack only?
 
 --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to
 algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   algogeeks%2bunsubscr...@googlegroups­.com
 .
 For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.
 
 --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to
 algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
 For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.
 
  --
 You received this 

Re: [algogeeks] Re: Implement a queue using a stack

2010-04-10 Thread Rohit Saraf
hmm... that can always be done !

--
Rohit Saraf
Second Year Undergraduate,
Dept. of Computer Science and Engineering
IIT Bombay
http://www.cse.iitb.ac.in/~rohitfeb14


On Wed, Mar 24, 2010 at 6:24 PM, Dave dave_and_da...@juno.com wrote:

 Please post your results. I'd like to study your algorithm.

 On Mar 23, 11:15 pm, chitta koushik koushik.infin...@gmail.com
 wrote:
  yeah i understand that . still wanted to attempt writing a recursive
  reverse() stack operation.
 
  On Wed, Mar 24, 2010 at 9:21 AM, Rohit Saraf 
 rohit.kumar.sa...@gmail.comwrote:
 
 
 
   Even when you are writing a recursive function.. you are not using one
   stack.
   One stack is yours. Other used for recursion.
 
   Making queue from a single stack =  Making turing machine from CFG.
 
   -Rohit
 
   On Wed, Mar 24, 2010 at 9:18 AM, chitta koushik 
   koushik.infin...@gmail.com wrote:
 
   Can we implement it using a single stack by writing  a recursive
 reverse
   stack operation ?
 
   On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh 
 singh.sund...@gmail.comwrote:
 
   Thanks Dave, I didn't think about this... definitely better!
 
   Sundeep.
 
   On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com
 wrote:
 
   Better still.
   To enqueue: push onto stack A.
   For dequeuing: If stack B is empty, pop all items from stack A and
   push onto stack B. Then pop stack B.
   There is no need to push remaining items back to stack A.
 
   As every item passes through the queue, it is pushed onto stack A,
   then popped from stack A and pushed onto stack B, and finally popped
   from stack B. The time is roughly twice the time required for a
 direct
   implementation of a queue.
 
   There is room for a little optimization if both stacks are empty
 when
   enquing, as you can push the item directly onto stack B.
 Furthermore,
   when popping from stack A and pushing onto stack B, you don't need
 to
   push the last item popped, as it is the return value.
 
   Dave
 
   On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
Hey Brian,
 
Better still, for inserting in queue, just keep pushing onto the
 stack
   A.
You need stack B only for dequeuing: for dequeuing, push all items
   into
stack B, pop as many as you want from stack B and then push back
 all
remaining items in stack A.
 
Regards,
Sundeep.
 
On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com
 wrote:
   How is it possible to implement a queue using a stack only?
 
 Interesting, but tricky... You need two stacks as Prakhar
 stated...
 In general, if you have Stack A and Stack B, you should keep all
 the
   items
 in stack A and then use stack B for processing.
 
 For example to insert an item:
 1. Pop all the items from A  and then push them into B (this
 should
   push
 the items into Stack B in reverse order)
 2. Insert the new item into A
 3. Pop all the items in B and push them back into A (again this
 will
   push
 them back into Stack B in reverse order)
 
 Running time should be O(1)+O(2n), which is O(n) for larger
 values
   of n -
 which is not good...
 
 To retrieve an item, pop the first item in stack A
 
 Hope  this helps -
 Regards
 B
 
 On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
 By a do u mean a single stack ?
 Otherwise if you use 2 its v simple
 
 Best,
 Prakhar Jain
http://web.iiit.ac.in/~prakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
   http://web.iiit.ac.in/%7Eprakharjain/
 
 On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
   pushpes...@gmail.comwrote:
 
 How is it possible to implement a queue using a stack only?
 
 --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to
 algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   algogeeks%2bunsubscr...@googlegroups­.com
 .
 For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.
 
 --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com
 .
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
 For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.
 
  --
 You received this message because you are subscribed to the
 Google
   Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com
 .
 To unsubscribe from this group, send email to
 

[algogeeks] Re: Implement a queue using a stack

2010-03-24 Thread Dave
Please post your results. I'd like to study your algorithm.

On Mar 23, 11:15 pm, chitta koushik koushik.infin...@gmail.com
wrote:
 yeah i understand that . still wanted to attempt writing a recursive
 reverse() stack operation.

 On Wed, Mar 24, 2010 at 9:21 AM, Rohit Saraf 
 rohit.kumar.sa...@gmail.comwrote:



  Even when you are writing a recursive function.. you are not using one
  stack.
  One stack is yours. Other used for recursion.

  Making queue from a single stack =  Making turing machine from CFG.

  -Rohit

  On Wed, Mar 24, 2010 at 9:18 AM, chitta koushik 
  koushik.infin...@gmail.com wrote:

  Can we implement it using a single stack by writing  a recursive reverse
  stack operation ?

  On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh 
  singh.sund...@gmail.comwrote:

  Thanks Dave, I didn't think about this... definitely better!

  Sundeep.

  On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com wrote:

  Better still.
  To enqueue: push onto stack A.
  For dequeuing: If stack B is empty, pop all items from stack A and
  push onto stack B. Then pop stack B.
  There is no need to push remaining items back to stack A.

  As every item passes through the queue, it is pushed onto stack A,
  then popped from stack A and pushed onto stack B, and finally popped
  from stack B. The time is roughly twice the time required for a direct
  implementation of a queue.

  There is room for a little optimization if both stacks are empty when
  enquing, as you can push the item directly onto stack B. Furthermore,
  when popping from stack A and pushing onto stack B, you don't need to
  push the last item popped, as it is the return value.

  Dave

  On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
   Hey Brian,

   Better still, for inserting in queue, just keep pushing onto the stack
  A.
   You need stack B only for dequeuing: for dequeuing, push all items
  into
   stack B, pop as many as you want from stack B and then push back all
   remaining items in stack A.

   Regards,
   Sundeep.

   On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com wrote:
  How is it possible to implement a queue using a stack only?

Interesting, but tricky... You need two stacks as Prakhar stated...
In general, if you have Stack A and Stack B, you should keep all the
  items
in stack A and then use stack B for processing.

For example to insert an item:
1. Pop all the items from A  and then push them into B (this should
  push
the items into Stack B in reverse order)
2. Insert the new item into A
3. Pop all the items in B and push them back into A (again this will
  push
them back into Stack B in reverse order)

Running time should be O(1)+O(2n), which is O(n) for larger values
  of n -
which is not good...

To retrieve an item, pop the first item in stack A

Hope  this helps -
Regards
B

On 3/22/2010 4:55 AM, Prakhar Jain wrote:

By a do u mean a single stack ?
Otherwise if you use 2 its v simple

Best,
Prakhar Jain
   http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
  http://web.iiit.ac.in/%7Eprakharjain/

On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
  pushpes...@gmail.comwrote:

How is it possible to implement a queue using a stack only?

--
You received this message because you are subscribed to the Google
  Groups
Algorithm Geeks group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to
algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups­.com
  algogeeks%2bunsubscr...@googlegroups­.com
.
For more options, visit this group at
   http://groups.google.com/group/algogeeks?hl=en.

--
You received this message because you are subscribed to the Google
  Groups
Algorithm Geeks group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to
algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups­.com
  .
For more options, visit this group at
   http://groups.google.com/group/algogeeks?hl=en.

 --
You received this message because you are subscribed to the Google
  Groups
Algorithm Geeks group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to
algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups­.com
  algogeeks%2bunsubscr...@googlegroups­.com
.
For more options, visit this group at
   http://groups.google.com/group/algogeeks?hl=en.-Hide quoted text -

   - Show quoted text -

  --
  You received this message because you are subscribed to the Google
  Groups Algorithm Geeks group.
  To post to this group, send email to algoge...@googlegroups.com.
  To unsubscribe from this group, send email to
  

Re: [algogeeks] Re: Implement a queue using a stack

2010-03-23 Thread Sundeep Singh
Thanks Dave, I didn't think about this... definitely better!

Sundeep.

On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com wrote:

 Better still.
 To enqueue: push onto stack A.
 For dequeuing: If stack B is empty, pop all items from stack A and
 push onto stack B. Then pop stack B.
 There is no need to push remaining items back to stack A.

 As every item passes through the queue, it is pushed onto stack A,
 then popped from stack A and pushed onto stack B, and finally popped
 from stack B. The time is roughly twice the time required for a direct
 implementation of a queue.

 There is room for a little optimization if both stacks are empty when
 enquing, as you can push the item directly onto stack B. Furthermore,
 when popping from stack A and pushing onto stack B, you don't need to
 push the last item popped, as it is the return value.

 Dave

 On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
  Hey Brian,
 
  Better still, for inserting in queue, just keep pushing onto the stack A.
  You need stack B only for dequeuing: for dequeuing, push all items into
  stack B, pop as many as you want from stack B and then push back all
  remaining items in stack A.
 
  Regards,
  Sundeep.
 
 
 
  On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com wrote:
 How is it possible to implement a queue using a stack only?
 
   Interesting, but tricky... You need two stacks as Prakhar stated...
   In general, if you have Stack A and Stack B, you should keep all the
 items
   in stack A and then use stack B for processing.
 
   For example to insert an item:
   1. Pop all the items from A  and then push them into B (this should
 push
   the items into Stack B in reverse order)
   2. Insert the new item into A
   3. Pop all the items in B and push them back into A (again this will
 push
   them back into Stack B in reverse order)
 
   Running time should be O(1)+O(2n), which is O(n) for larger values of n
 -
   which is not good...
 
   To retrieve an item, pop the first item in stack A
 
   Hope  this helps -
   Regards
   B
 
   On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
   By a do u mean a single stack ?
   Otherwise if you use 2 its v simple
 
   Best,
   Prakhar Jain
  http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
 
   On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta pushpes...@gmail.com
 wrote:
 
   How is it possible to implement a queue using a stack only?
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
--
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
 
  - Show quoted text -

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.



Re: [algogeeks] Re: Implement a queue using a stack

2010-03-23 Thread chitta koushik
Can we implement it using a single stack by writing  a recursive reverse
stack operation ?


On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh singh.sund...@gmail.comwrote:

 Thanks Dave, I didn't think about this... definitely better!

 Sundeep.


 On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com wrote:

 Better still.
 To enqueue: push onto stack A.
 For dequeuing: If stack B is empty, pop all items from stack A and
 push onto stack B. Then pop stack B.
 There is no need to push remaining items back to stack A.

 As every item passes through the queue, it is pushed onto stack A,
 then popped from stack A and pushed onto stack B, and finally popped
 from stack B. The time is roughly twice the time required for a direct
 implementation of a queue.

 There is room for a little optimization if both stacks are empty when
 enquing, as you can push the item directly onto stack B. Furthermore,
 when popping from stack A and pushing onto stack B, you don't need to
 push the last item popped, as it is the return value.

 Dave

 On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
  Hey Brian,
 
  Better still, for inserting in queue, just keep pushing onto the stack
 A.
  You need stack B only for dequeuing: for dequeuing, push all items into
  stack B, pop as many as you want from stack B and then push back all
  remaining items in stack A.
 
  Regards,
  Sundeep.
 
 
 
  On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com wrote:
 How is it possible to implement a queue using a stack only?
 
   Interesting, but tricky... You need two stacks as Prakhar stated...
   In general, if you have Stack A and Stack B, you should keep all the
 items
   in stack A and then use stack B for processing.
 
   For example to insert an item:
   1. Pop all the items from A  and then push them into B (this should
 push
   the items into Stack B in reverse order)
   2. Insert the new item into A
   3. Pop all the items in B and push them back into A (again this will
 push
   them back into Stack B in reverse order)
 
   Running time should be O(1)+O(2n), which is O(n) for larger values of
 n -
   which is not good...
 
   To retrieve an item, pop the first item in stack A
 
   Hope  this helps -
   Regards
   B
 
   On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
   By a do u mean a single stack ?
   Otherwise if you use 2 its v simple
 
   Best,
   Prakhar Jain
  http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
 
   On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
 pushpes...@gmail.comwrote:
 
   How is it possible to implement a queue using a stack only?
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
--
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
 
  - Show quoted text -

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this 

Re: [algogeeks] Re: Implement a queue using a stack

2010-03-23 Thread Rohit Saraf
Even when you are writing a recursive function.. you are not using one
stack.
One stack is yours. Other used for recursion.

Making queue from a single stack =  Making turing machine from CFG.

-Rohit


On Wed, Mar 24, 2010 at 9:18 AM, chitta koushik
koushik.infin...@gmail.comwrote:

 Can we implement it using a single stack by writing  a recursive reverse
 stack operation ?



 On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh 
 singh.sund...@gmail.comwrote:

 Thanks Dave, I didn't think about this... definitely better!

 Sundeep.


 On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com wrote:

 Better still.
 To enqueue: push onto stack A.
 For dequeuing: If stack B is empty, pop all items from stack A and
 push onto stack B. Then pop stack B.
 There is no need to push remaining items back to stack A.

 As every item passes through the queue, it is pushed onto stack A,
 then popped from stack A and pushed onto stack B, and finally popped
 from stack B. The time is roughly twice the time required for a direct
 implementation of a queue.

 There is room for a little optimization if both stacks are empty when
 enquing, as you can push the item directly onto stack B. Furthermore,
 when popping from stack A and pushing onto stack B, you don't need to
 push the last item popped, as it is the return value.

 Dave

 On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
  Hey Brian,
 
  Better still, for inserting in queue, just keep pushing onto the stack
 A.
  You need stack B only for dequeuing: for dequeuing, push all items into
  stack B, pop as many as you want from stack B and then push back all
  remaining items in stack A.
 
  Regards,
  Sundeep.
 
 
 
  On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com wrote:
 How is it possible to implement a queue using a stack only?
 
   Interesting, but tricky... You need two stacks as Prakhar stated...
   In general, if you have Stack A and Stack B, you should keep all the
 items
   in stack A and then use stack B for processing.
 
   For example to insert an item:
   1. Pop all the items from A  and then push them into B (this should
 push
   the items into Stack B in reverse order)
   2. Insert the new item into A
   3. Pop all the items in B and push them back into A (again this will
 push
   them back into Stack B in reverse order)
 
   Running time should be O(1)+O(2n), which is O(n) for larger values of
 n -
   which is not good...
 
   To retrieve an item, pop the first item in stack A
 
   Hope  this helps -
   Regards
   B
 
   On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
   By a do u mean a single stack ?
   Otherwise if you use 2 its v simple
 
   Best,
   Prakhar Jain
  http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
 
   On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
 pushpes...@gmail.comwrote:
 
   How is it possible to implement a queue using a stack only?
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
--
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
 
  - Show quoted text -

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com

Re: [algogeeks] Re: Implement a queue using a stack

2010-03-23 Thread chitta koushik
yeah i understand that . still wanted to attempt writing a recursive
reverse() stack operation.

On Wed, Mar 24, 2010 at 9:21 AM, Rohit Saraf rohit.kumar.sa...@gmail.comwrote:

 Even when you are writing a recursive function.. you are not using one
 stack.
 One stack is yours. Other used for recursion.

 Making queue from a single stack =  Making turing machine from CFG.

 -Rohit


 On Wed, Mar 24, 2010 at 9:18 AM, chitta koushik 
 koushik.infin...@gmail.com wrote:

 Can we implement it using a single stack by writing  a recursive reverse
 stack operation ?



 On Tue, Mar 23, 2010 at 10:18 AM, Sundeep Singh 
 singh.sund...@gmail.comwrote:

 Thanks Dave, I didn't think about this... definitely better!

 Sundeep.


 On Mon, Mar 22, 2010 at 9:08 PM, Dave dave_and_da...@juno.com wrote:

 Better still.
 To enqueue: push onto stack A.
 For dequeuing: If stack B is empty, pop all items from stack A and
 push onto stack B. Then pop stack B.
 There is no need to push remaining items back to stack A.

 As every item passes through the queue, it is pushed onto stack A,
 then popped from stack A and pushed onto stack B, and finally popped
 from stack B. The time is roughly twice the time required for a direct
 implementation of a queue.

 There is room for a little optimization if both stacks are empty when
 enquing, as you can push the item directly onto stack B. Furthermore,
 when popping from stack A and pushing onto stack B, you don't need to
 push the last item popped, as it is the return value.

 Dave

 On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
  Hey Brian,
 
  Better still, for inserting in queue, just keep pushing onto the stack
 A.
  You need stack B only for dequeuing: for dequeuing, push all items
 into
  stack B, pop as many as you want from stack B and then push back all
  remaining items in stack A.
 
  Regards,
  Sundeep.
 
 
 
  On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com wrote:
 How is it possible to implement a queue using a stack only?
 
   Interesting, but tricky... You need two stacks as Prakhar stated...
   In general, if you have Stack A and Stack B, you should keep all the
 items
   in stack A and then use stack B for processing.
 
   For example to insert an item:
   1. Pop all the items from A  and then push them into B (this should
 push
   the items into Stack B in reverse order)
   2. Insert the new item into A
   3. Pop all the items in B and push them back into A (again this will
 push
   them back into Stack B in reverse order)
 
   Running time should be O(1)+O(2n), which is O(n) for larger values
 of n -
   which is not good...
 
   To retrieve an item, pop the first item in stack A
 
   Hope  this helps -
   Regards
   B
 
   On 3/22/2010 4:55 AM, Prakhar Jain wrote:
 
   By a do u mean a single stack ?
   Otherwise if you use 2 its v simple
 
   Best,
   Prakhar Jain
  http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/
 http://web.iiit.ac.in/%7Eprakharjain/
 
   On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
 pushpes...@gmail.comwrote:
 
   How is it possible to implement a queue using a stack only?
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
--
   You received this message because you are subscribed to the Google
 Groups
   Algorithm Geeks group.
   To post to this group, send email to algoge...@googlegroups.com.
   To unsubscribe from this group, send email to
   algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 algogeeks%2bunsubscr...@googlegroups­.com
   .
   For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
 
  - Show quoted text -

 --
 You received this message because you are subscribed to the Google
 Groups Algorithm Geeks group.
 To post to this group, send email to algoge...@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 

[algogeeks] Re: Implement a queue using a stack

2010-03-22 Thread Dave
Better still.
To enqueue: push onto stack A.
For dequeuing: If stack B is empty, pop all items from stack A and
push onto stack B. Then pop stack B.
There is no need to push remaining items back to stack A.

As every item passes through the queue, it is pushed onto stack A,
then popped from stack A and pushed onto stack B, and finally popped
from stack B. The time is roughly twice the time required for a direct
implementation of a queue.

There is room for a little optimization if both stacks are empty when
enquing, as you can push the item directly onto stack B. Furthermore,
when popping from stack A and pushing onto stack B, you don't need to
push the last item popped, as it is the return value.

Dave

On Mar 22, 9:29 am, Sundeep Singh singh.sund...@gmail.com wrote:
 Hey Brian,

 Better still, for inserting in queue, just keep pushing onto the stack A.
 You need stack B only for dequeuing: for dequeuing, push all items into
 stack B, pop as many as you want from stack B and then push back all
 remaining items in stack A.

 Regards,
 Sundeep.



 On Mon, Mar 22, 2010 at 6:56 PM, Brian brianfo...@gmail.com wrote:
    How is it possible to implement a queue using a stack only?

  Interesting, but tricky... You need two stacks as Prakhar stated...
  In general, if you have Stack A and Stack B, you should keep all the items
  in stack A and then use stack B for processing.

  For example to insert an item:
  1. Pop all the items from A  and then push them into B (this should push
  the items into Stack B in reverse order)
  2. Insert the new item into A
  3. Pop all the items in B and push them back into A (again this will push
  them back into Stack B in reverse order)

  Running time should be O(1)+O(2n), which is O(n) for larger values of n -
  which is not good...

  To retrieve an item, pop the first item in stack A

  Hope  this helps -
  Regards
  B

  On 3/22/2010 4:55 AM, Prakhar Jain wrote:

  By a do u mean a single stack ?
  Otherwise if you use 2 its v simple

  Best,
  Prakhar Jain
 http://web.iiit.ac.in/~prakharjain/http://web.iiit.ac.in/%7Eprakharjain/

  On Mon, Mar 22, 2010 at 12:56 AM, Pushpesh Gupta 
  pushpes...@gmail.comwrote:

  How is it possible to implement a queue using a stack only?

  --
  You received this message because you are subscribed to the Google Groups
  Algorithm Geeks group.
  To post to this group, send email to algoge...@googlegroups.com.
  To unsubscribe from this group, send email to
  algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups­.com
  .
  For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.

  --
  You received this message because you are subscribed to the Google Groups
  Algorithm Geeks group.
  To post to this group, send email to algoge...@googlegroups.com.
  To unsubscribe from this group, send email to
  algogeeks+unsubscr...@googlegroups.com.
  For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.

   --
  You received this message because you are subscribed to the Google Groups
  Algorithm Geeks group.
  To post to this group, send email to algoge...@googlegroups.com.
  To unsubscribe from this group, send email to
  algogeeks+unsubscr...@googlegroups.comalgogeeks%2bunsubscr...@googlegroups­.com
  .
  For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -

 - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.