How to store the parsed data of the expression from a file to construct an expression tree

Started by
1 comment, last by Nicholas Kong 10 years, 11 months ago

This is one expression from the first line of the file.

- + + 4.0 - / - 22.0 2.0 5.0 * 3.0 4.0 7.0 / 6.0 3.0

The problem lies I do not understand where do these operands and numbers get stored to construct a expression tree during the time the above expression gets parsed. After constructing an expression tree, the tree is suppose to be able to output preorder,inorder and postorder expression of that tree.

From the example given, the operands are connected by an operator, but the example does not help guide me in terms of how to lay the operands and numbers out for this expression.

I tried using a stack diagram to visualize the design of my program better but I am stuck when 22.0 appears on the stack. What is suppose to happen when 22.0 appears on the stack?

stack_zps213b2cb1.png

Advertisement

List looks backwards to me? Try pushing values from the right hand side of the list onto the stack and replace the top 2 elements with the result of the operation when you push an operator?

so 3.0 6.0 / => pushes 3, 6 and then replaces them with 3.0 / 6.0 = 0.5 when the division operator is pushed.

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

List looks backwards to me? Try pushing values from the right hand side of the list onto the stack and replace the top 2 elements with the result of the operation when you push an operator?

so 3.0 6.0 / => pushes 3, 6 and then replaces them with 3.0 / 6.0 = 0.5 when the division operator is pushed.

reversing the list was the perfect strategy to evaluating the expression. Thanks Paradigm.

This topic is closed to new replies.

Advertisement