如何将后缀表达式放在二叉树中?

所以我有一个二叉树和一个后缀表达式“ 6 2 * 3 /”,将它放在树中的算法是什么?喜欢,

          [/]

/ \

[*] [3]

/ \

[6] [2]

回答:

要从表达式构造树,请假装您直接对它求值,但构造树而不是计算数字。(此技巧比后缀表达式有用得多。)

有一个堆栈来存储中间值(即树),并从左到右检查每个令牌:

  • 如果是数字,则将其变成叶子节点,然后将其压入堆栈。
  • 如果是运算符,请从堆栈中弹出两个项目,使用这些子元素构造一个运算符节点,然后将新节点压入堆栈。

最后,如果表达式的格式正确,那么堆栈上应该恰好有一棵树,即树形式的整个表达式。

以上是 如何将后缀表达式放在二叉树中? 的全部内容, 来源链接: utcz.com/qa/413728.html

回到顶部