0

我搜索了互联网和“you tube”,但没有找到任何好的教程。如何在“后缀”中绘制给定表达式的相应“二叉树”?

这个表达式在中缀和前缀中的外观如何?

我不知道我应该如何一步一步地做到这一点:(

18 5 1 + / 4 * 3 5 18 6 / - + -

笔记:

绘制前序、后序和中序的规则是: 1. 前序遍历:根,左,右 2. 后序遍历:左,右,根 3. 中序遍历:左根, 正确的

请问我考试需要它

4

1 回答 1

1

从左到右扫描表达式。当您找到一个数字时,构建一个(叶)节点,然后将其压入堆栈。当你找到一个操作符时,构建一个节点,从堆栈中弹出两个节点,将它们连接为当前节点的左右子节点,然后将节点压入堆栈并继续。在字符串的末尾,您必须只有堆栈中的根

当您拥有树时,查找前缀和中缀是微不足道的。

请注意,这是基于每个运算符取两个值的假设(可以很容易地适应一元运算符),即每个内部节点都有两个子节点。一般来说,不可能从后缀构建树(参见维基百科)。

于 2013-05-05T06:27:28.803 回答