(parseTree)
| 36 | |
| 37 | # 递归实现两个叶结点的运算 |
| 38 | def evaluate(parseTree): |
| 39 | opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv} |
| 40 | |
| 41 | leftC = parseTree.getLeftChild() |
| 42 | rightC = parseTree.getRightChild() |
| 43 | |
| 44 | if leftC and rightC: |
| 45 | fn = opers[parseTree.getRootVal()] |
| 46 | return fn(evaluate(leftC), evaluate(rightC)) |
| 47 | else: |
| 48 | return parseTree.getRootVal() |
| 49 | |
| 50 | # 递归实现树的后序遍历 |
| 51 | def postorder(tree): |
nothing calls this directly
no test coverage detected