c语言后缀转中缀
发布时间: 2024-07-08 10:11:12
⑴ 如何将中缀式转换成后缀式 C语言 递归
思路的话其实很简单,就是构建一棵二叉树,根节点和中间节点为运算符,叶子结点为运算数字。如 a + b*c, 构建为二叉树的话,就如下图: +a * b c对于该二叉树,使用不同的遍历方式就可以得到不同的表达式了。遍历的代码很简单就不多说了。因此,你的问题主要可以分解为3个小问题:1。将后缀表达式转换为二叉树 该方法是最简单的。如a + b*c 的后缀表达式为 bc*a+.处理步骤如下: 1。建立一个栈S
2。从左到右读后缀表达式,读到数字就创建叶子节点,节点值为数字值。将节点压入栈S中,读到运算符则创建中间节点,并从栈中依次弹出两个节点分别为Y和X,作为中间节点的左右子节点,然后以“X 运算符 Y”的形式计算机出中间节点的值,再将此中间节点压加栈S中 3。就重复第二步直至后缀表达式结束,此时栈顶的节点就是二叉树的根节点了。2。将中缀表达式转换为二叉树 按照上一个回答者的方法将中缀表达式转为后缀表达式,然后调用后缀表达式生成二叉树的解法即可。3。将前缀表达式转换为二叉树 将前缀表达式直接取反即为后缀表达式。 如前缀表达式为+*bca,对应的后缀表达式为acb*+。因此,我们只需要字符串取反,然后调用后缀表达式的方法生成二叉树即可。
热点内容