Implementing a fixed size stack for an RPN Calculator
Diez B. Roggisch
deets at nospam.web.de
Thu Sep 13 03:39:14 EDT 2007
rami.mawas at gmail.com schrieb:
> On Sep 12, 2:55 pm, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
>> On Wed, 12 Sep 2007 20:55:22 +0000, rami.ma... at gmail.com wrote:
>>> I have implemented an RPN calculator in python but now I would like to
>>> make the stack size fixed. how can I transform the user's RPN
>>> expression from a stack overflow to a computable expression.
>>> For instance, if my stack size is 2 then the some expression can't be
>>> computed but could be transformed as following:
>>> Non computable expression: 1 2 3 + + --> stack size of 3 is needed
>>> Computable expression: 1 2 + 3 + --> stack size of 2 is needed
>>> How can I define a formal way of transforming the non computable
>>> expression to computable one.
>>> My RPN only implements: + - x %
>> Why does this homework assignment limit the stack so severely!? ;-)
>>
>> Ciao,
>> Marc 'BlackJack' Rintsch
>
>
> The problem is not with the stack being severely small or not, it
> could be 1000 but it should be fixed and that's the limitation.
It can't be fixed. You can algebraic rewrite expressions of the form
(a + (b + (c + d))
because of the commutativity of the +-operation to
(a+b) + (c + d)
and this can be done automatically.
But for arbitrary expressions, you will _always_ need arbitrary stack-sizes.
Diez
More information about the Python-list
mailing list