我的MIPS Assembly类需要我将未知大小的表达式读入分析树。我从来没有对付树木,所以我这是怎么绕到存储值:关于树和前缀(波兰语)符号?
比方说,用户输入表达式1 + 3 - 4(每个操作数只能是数字1-9)
我最左边的子节点将是起点,包含2个数据
1. The operand
2. Pointer to the next node (operator)
的我这是怎么构建的树。我会从操作数指向运算符,直到下一个运算符指向下一个运算符,直到没有更多值要读入为止。
我的下一个任务是递归遍历树并以infix/prefix/postfix表示法输出值。
考虑到我如何构建树,Infix遍历不成问题。
我被困在前缀上。首先,我不完全理解它。
当我输出我们的表达式(1 + 3 - 4)在前缀应该出来 - + 1 3 4?遵循在线示例我遇到了麻烦。
你也认为我的树构建正确吗?我的意思是,我无法前往当前节点的前一个节点,这意味着我总是必须从最左侧的子节点开始遍历,即使我的TA说这是一条路,本能地听起来不正确。
谢谢你的帮助。
这就是我正要给的答案。谢谢sykora! – Niyaz 2009-02-07 15:46:39