已知二叉树的前缀表达式为ABCDE,中缀表达式为BDCEA,后缀表达式怎么求出来?有何方法?
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/16 14:36:07
已知二叉树的前缀表达式为ABCDE,中缀表达式为BDCEA,后缀表达式怎么求出来?有何方法?
![已知二叉树的前缀表达式为ABCDE,中缀表达式为BDCEA,后缀表达式怎么求出来?有何方法?](/uploads/image/z/5071209-33-9.jpg?t=%E5%B7%B2%E7%9F%A5%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%89%8D%E7%BC%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%BAABCDE%2C%E4%B8%AD%E7%BC%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%BABDCEA%2C%E5%90%8E%E7%BC%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%80%8E%E4%B9%88%E6%B1%82%E5%87%BA%E6%9D%A5%3F%E6%9C%89%E4%BD%95%E6%96%B9%E6%B3%95%3F)
前缀表达式对应于二叉树的先序遍历,先访问根,再访问左子树,然后访问右子树;
中缀表达式对应于二叉树的中序遍历,先访问左子树,再访问根,然后访问右子树;
后缀表达式对应于二叉树的后序遍历,先访问左子树,再访问右子树,然后访问根;
可以发现,二叉树前序中的第一个节点为树的根节点root,然后找出root在中序里面的位置,就可以把先序和中序分别划分为左、右子树两个部分,然后递归调用即可.可以看出A是跟结点,A的中序遍历排序中没有右边部分,所以A只有左子树.先序排列中A接下来是B,B在中序遍历中没有左部分,先序中接下来是C,中序中有左右两边,所以根据前面的的表达式得到树是:
A
/
B
\
C
/ \
D E
最后,后序遍历得到是:DECBA
再问: Nice!
中缀表达式对应于二叉树的中序遍历,先访问左子树,再访问根,然后访问右子树;
后缀表达式对应于二叉树的后序遍历,先访问左子树,再访问右子树,然后访问根;
可以发现,二叉树前序中的第一个节点为树的根节点root,然后找出root在中序里面的位置,就可以把先序和中序分别划分为左、右子树两个部分,然后递归调用即可.可以看出A是跟结点,A的中序遍历排序中没有右边部分,所以A只有左子树.先序排列中A接下来是B,B在中序遍历中没有左部分,先序中接下来是C,中序中有左右两边,所以根据前面的的表达式得到树是:
A
/
B
\
C
/ \
D E
最后,后序遍历得到是:DECBA
再问: Nice!
已知二叉树的前缀表达式为ABCDE,中缀表达式为BDCEA,后缀表达式怎么求出来?有何方法?
中缀表达式为:5*x-3+b/x^2 的前缀 后缀表达式分别是什么?
前缀、中缀、后缀表达式是怎样的?
把中缀表达式转换为后缀表达式的算法
数据结构中的树与二叉树已知一算术表达式的中缀形式A+B*C-D/E,后缀ABC*+DE/-,前缀形式为什么
数据结构 前缀表达式 中缀表达式 后缀表达式各是什么啊?怎么相互转化呢?
前缀、中缀、后缀表达式是怎样的?如题
算术表达式能实现前缀后缀和中缀的表达是求值设计表达式的存储结构能求出结果
用堆栈实现将中缀表达式转化为后缀表达式
求中缀表达式转换为后缀表达式程序
已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为
中缀表达式转后缀表达式