【发布时间】:2009-02-07 15:31:35
【问题描述】:
我的 MIPS 汇编课程要求我将未知大小的表达式读入解析树。我从来不用处理树,所以这就是我存储值的方式:
假设用户输入了表达式 1 + 3 - 4(每个操作数只能是数字 1-9)
我最左边的子节点将是起点并包含 2 条数据
1. The operand
2. Pointer to the next node (operator)
这就是我构建树的方式。我会从操作数指向运算符,再指向下一个操作数,再指向下一个运算符,直到没有更多值要读入为止。
我的下一个任务是递归遍历树并以中缀/前缀/后缀表示法输出值。
考虑到我是如何构建树的,中缀遍历没有问题。
我卡在前缀上。首先,我没有完全理解。
当我在前缀中输出我们的表达式 (1 + 3 - 4) 时,它应该出现 - + 1 3 4 吗?我无法按照在线示例进行操作。
您还认为我的树构造正确吗?我的意思是,我无法从当前节点转到前一个节点,这意味着我总是必须从最左边的子节点开始遍历,尽管我的 TA 说这是要走的路,但本能地听起来并不正确。
感谢您的帮助。
【问题讨论】:
标签: tree mips traversal prefix notation