我的MIPS汇编课程要求我将一个大小未知的表达式读入解析树中。我从未接触过树,所以这是我存储值的方式:
假设用户输入了表达式1+3-4(每个运算数只能是数字1-9)
我的最左边的子节点将成为起始点并包含两个数据:
1. The operand
2. Pointer to the next node (operator)
这是我构建树的方法。我会从操作数指向运算符,再指向下一个操作数,再指向下一个运算符,直到没有更多值需要读取。
我的下一个任务是递归遍历树,并以中缀/前缀/后缀表示法输出值。
考虑到我如何构建树,中缀遍历不成问题。
我卡在了前缀上。首先,我并不完全理解它。
当我以前缀形式输出我们的表达式(1 + 3 - 4)时,它应该是 - + 1 3 4 吗?我很难跟随在线示例。
你认为我的树构建得正确吗?我的意思是,我无法从当前节点返回到上一个节点,这意味着我始终必须从最左边的子节点开始遍历,即使我的TA说那是正确的方法,但本能上感觉不对。
谢谢您的帮助。