On Mon, Oct 1, 2012 at 7:46 PM, Alan Gauld <alan.ga...@btinternet.com> wrote:
>
> As c smith points out, Python lists have a pop/push mechanism as standard
> which makes implementing a stack in Python fairly trivial.
>
> To expand on how reversing works consider pushing the string foo onto the
> stack then popping it off again:
>
> s = 'foo'
> stack = []
> stack.push(s[0])  # stack -> ['f']
> stack.push(s[1])  # stack -> ['o','f']
> stack.push(s[2])  # stack -> ['o','o','f']
>
> c1 = stack.pop()  # stack -> ['o','f'], c1 = 'o'
> c2 = stack.pop()  # stack -> ['f'], c1 = 'o', c2 = 'o'
> c3 = stack.pop()  # stack -> [], c1 = 'o', c2 = 'o', c3 = 'f'
>
> print c1+c2+c3  # prints 'oof' the reverse of s

It's a good example, but please indicate when you've switched to
pseudocode. In Python "stack = []" assigns a new list to stack, which
has no "push" method. It can append() and pop() from the end in
constant time to implement an efficient stack.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to