中缀表达式生成二叉树Python
时间: 2024-12-24 21:17:43 浏览: 44
在Python中,将中缀表达式转换成二叉树通常涉及到解析表达式的过程,可以使用递归的方式来构建。你可以定义一个节点类表示树中的元素,然后通过栈来辅助完成这个过程。下面是一个简单的示例:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def infix_to_tree(expression):
operators = ['+', '-', '*', '/']
stack = []
tokens = expression.split()
def parse():
if not tokens:
return None
if tokens[0] in operators:
right = parse()
left = parse()
node = Node(tokens.pop(0))
node.left = left
node.right = right
return node
else:
return Node(int(tokens.pop(0)))
tree = parse()
return tree
# 使用例子
expression = "3 + 2 * (4 - 5)"
binary_tree = infix_to_tree(expression)
```
在这个例子中,`infix_to_tree`函数接收一个中缀表达式,逐个处理每个元素,如果遇到运算符则创建一个新的节点,其左右子树分别是后续计算的结果。当遇到数字时,则创建一个表示数值的节点。
阅读全文
相关推荐


















