我有一个二叉树和一个后缀表达式 "6 2 * 3 /",如何将其放入树中?
算法是什么?
[/]
/ \
[*] [3]
/ \
[6] [2]
我有一个二叉树和一个后缀表达式 "6 2 * 3 /",如何将其放入树中?
算法是什么?
[/]
/ \
[*] [3]
/ \
[6] [2]
构建表达式的树形结构,可以像直接计算数字一样来构造树形结构。这个技巧不仅在后缀表达式中有用,而且在许多其他情况下也非常实用。
算法: 使用一个栈来存储中间值(即树),从左到右检查每个标记:
最后,如果表达式格式正确,则您应该在栈上恰好有一棵表示整个表达式的树形结构。
Postfix-to-tree(j){
n <--ALLOCATE_NODE(A[j],NULL,NULL)
Switch
case Postfix[j] is a binary operator
do j <--j-1
right[n] <-- Postfix-to-tree(j)
j <-- j-1
left[n] <--postfix-to-tree(j)
case postfix[j] is a unary operator
do j <-- j-1
right[n] <-- Postfix-to-tree(j)
}