我们应该如何构建以下“前缀”订单表达式的二叉树?
( - * / 8 + 5 1 4 + 3 - 5/18 6)
绘制树有什么规则吗?
答案 0 :(得分:2)
Pseudocode是这样的:
function MakeBinaryTree(expr):
element = next element in expr
if element is a number:
return a leaf node of that number
else: // element is an operator
left = MakeBinaryTree(expr)
right = MakeBinaryTree(expr)
return a binary tree with subtrees left and right and with operator element
这里expr
保持一个内部指针指向下一个元素的位置。