This is untested, but you should get the general idea.
Don

#include <stdio.h>

struct h
{
        int n, from, to, use;
};

typedef struct h stackEle;

int main(int argc, char* argv[])
{
        stack<stackEle> s;

        stackEle se;
        se.n = 5;
        se.from = 1;
        se.to=3;
        se.use = 2;
        s.push(se);

        while(!s.empty())
        {
                se = s.pop();
                if (se.n == 1)
                        printf("Move disk from %d to %d\n", se.from, se.to);
                else
                {
                        stackEle newSE;
                        newSE.n = se.n-1;
                        newSE.from = se.from;
                        newSE.to = se.use;
                        newSE.use = se.to;
                        s.push(newSE);
                        newSE.n = 1;
                        newSE.from = se.from;
                        newSE.to = se.to;
                        newSE.use = se.use;
                        s.push(newSE);
                        newSE.n = n-1;
                        newSE.from = se.use;
                        newSE.to = se.to;
                        newSE.use = se.from;
                        s.push(newSE);
                }
        }

        return 0;
}

On Sep 20, 12:52 pm, prasanth n <nprasnt...@gmail.com> wrote:
> @don:
> if call stack does not count as stack??..
>
>
>
> On Tue, Sep 20, 2011 at 11:13 PM, Don <dondod...@gmail.com> wrote:
> > #include <stdio.h>
>
> > void move(int n, int from, int to, int use)
> > {
> >        if (n == 1) printf("Move disk from peg %d to peg %d\n", from, to);
> >        else
> >        {
> >                move(n-1, from, use, to);
> >                move(1, from , to, use);
> >                move(n-1, use, to, from);
> >        }
> > }
>
> > int main(int argc, char* argv[])
> > {
> >        const int n = 5;
>
> >        move(n, 1, 2, 3);
>
> >        return 0;
> > }
>
> > On Sep 20, 12:37 pm, prasanth n <nprasnt...@gmail.com> wrote:
> > > @don:
> > > yes it think
>
> > > On Tue, Sep 20, 2011 at 11:00 PM, Don <dondod...@gmail.com> wrote:
> > > > Does the call stack count as a stack?
>
> > > > Don
>
> > > > On Sep 20, 12:27 pm, prasanth n <nprasnt...@gmail.com> wrote:
> > > > > In the classic problem of the Towers of Hanoi, you have 3 rods and N
> > > > disks
> > > > > of different sizes which can slide onto any tower. The puzzle starts
> > with
> > > > > disks sorted in ascending order of size from top to bottom (e.g.,
> > each
> > > > disk
> > > > > sits on top of an even larger one). You have the following
> > constraints:
> > > > > (A) Only one disk can be moved at a time.
> > > > > (B) A disk is slid off the top of one rod onto the next rod.
> > > > > (C) A disk can only be placed on top of a larger disk.
> > > > > Write a program to move the disks from the first rod to the last
> > using
> > > > > Stacks.
>
> > > > > --
> > > > > *prasanth*
>
> > > > --
> > > > 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.com.
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/algogeeks?hl=en.
>
> > > --
> > > *prasanth*
>
> > --
> > 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.com.
> > For more options, visit this group at
> >http://groups.google.com/group/algogeeks?hl=en.
>
> --
> *prasanth*

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to