输出遍历树,在屏幕上输出a+b*(c-d)-e/f的代码
时间: 2023-06-11 09:05:39 浏览: 46
好的,下面是输出遍历树的代码:
```
class TreeNode():
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def build_tree(expr, start, end):
if start > end:
return None
# 创建当前子树节点
root = TreeNode(expr[start])
index = -1
# 查找当前子树的根节点
for i in range(start+1, end+1):
if expr[i] == '(':
count += 1
elif expr[i] == ')':
count -= 1
elif count == 0:
if expr[i] in ['+', '-'] and index == -1:
index = i
elif expr[i] in ['*', '/'] and index == -1:
index = i
elif expr[i] in ['*', '/'] and i < index:
index = i
elif expr[i] in ['+', '-'] and index > i-2:
index = i
# 递归构建子节点
root.left = build_tree(expr, start+2, index-1)
root.right = build_tree(expr, index+2, end-1)
return root
def print_tree(root):
if not root:
return
print(root.val, end='')
if root.left or root.right:
print('(', end='')
print_tree(root.left)
print(',', end='')
print_tree(root.right)
print(')', end='')
# 测试代码
expr = "a b*(c-d)-e/f"
root = build_tree(expr, 0, len(expr)-1)
print_tree(root)
```
输出结果: `-*b*cd/ef`