构造前序、后序、中序表达式的二叉树



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

这个表达式的中缀和前缀是什么样子的?

我不知道该怎么一步一步来做。

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

注意:

绘制预订单、后订单和中订单的规则为:1. 预顺序遍历:根,左,右2. 后序遍历:左,右,根3.序遍历:左根,右

我需要它来考试

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

当你有了树,找到前缀和中缀是微不足道的。

注意,这是基于每个操作符接受两个值的假设(可以很容易地适应一元操作符),也就是说,每个内部节点都有两个子节点。一般来说,不可能从后缀构建树(参见wikipedia)。

最新更新