如何将后缀表达式放在二叉树中?
所以我有一个二叉树和一个后缀表达式“ 6 2 * 3 /”,将它放在树中的算法是什么?喜欢,
[/] / \
[*] [3]
/ \
[6] [2]
回答:
要从表达式构造树,请假装您直接对它求值,但构造树而不是计算数字。(此技巧比后缀表达式有用得多。)
有一个堆栈来存储中间值(即树),并从左到右检查每个令牌:
- 如果是数字,则将其变成叶子节点,然后将其压入堆栈。
- 如果是运算符,请从堆栈中弹出两个项目,使用这些子元素构造一个运算符节点,然后将新节点压入堆栈。
最后,如果表达式的格式正确,那么堆栈上应该恰好有一棵树,即树形式的整个表达式。
以上是 如何将后缀表达式放在二叉树中? 的全部内容, 来源链接: utcz.com/qa/413728.html