在数据结构中,我将按顺序转换和预排序公式转换为树。但是,我对后订购不是很好。
对于给定的公式x y z + a b - c * / -
我想出了
- / \ * / (divide) / \ / \ x + - c / \ /\ y z a b
在大多数情况下,这似乎很合适,除了左子树中的 * 是甲板上的小丑。在后序遍历中,最后一个字符是树的顶部节点,其他所有内容都向下分支。现在我将 / 和 * 运算符表示它们应该位于相反的节点上。但是,在遍历树时,除了 * 之外的所有内容都适合,因为左子树必须先到达根节点之前的节点,然后再切换到右子树。
向正确方向轻推是值得赞赏的。