基于二叉树表达式求值
时间: 2023-12-10 16:34:07 浏览: 188
利用二叉树求表达式值
基于二叉树表达式求值的步骤如下:
1.将表达式转换为表达式树,其中每个操作符都是一个节点,每个操作数都是叶节点。
2.从根节点开始遍历表达式树,如果当前节点是操作符,则计算其左右子树的值并将结果与当前节点的操作符一起计算,如果当前节点是操作数,则返回该节点的值。
3.最终得到的结果即为表达式的值。
下面是一个示例代码,用于演示基于二叉树表达式求值的过程:
```python
class Node:
def __init__(self, value):
self.left = None
self.right = None
self.value = value
def build_expression_tree(expression):
stack = []
for char in expression:
if char.isdigit():
node = Node(int(char))
stack.append(node)
else:
right = stack.pop()
left = stack.pop()
node = Node(char)
node.left = left
node.right = right
stack.append(node)
return stack.pop()
def evaluate_expression_tree(root):
if root.value.isdigit():
return int(root.value)
left_value = evaluate_expression_tree(root.left)
right_value = evaluate_expression_tree(root.right)
if root.value == '+':
return left_value + right_value
elif root.value == '-':
return left_value - right_value
elif root.value == '*':
return left_value * right_value
elif root.value == '/':
return left_value / right_value
expression = '23+5*'
expression_tree = build_expression_tree(expression)
result = evaluate_expression_tree(expression_tree)
print(result) # 输出:25
```
阅读全文