四则运算表达式分解,前中后缀表达式(栈的应用)

本文详细解析了如何通过构建表达式对应的二叉树,并利用前序、中序和后序遍历来转换自然表达式为前缀、中缀和后缀表达式。以a×(b+c)-d为例,展示了从自然表达式到二叉树,再到不同遍历方式的完整过程。

前/中/后缀表达式的转换(首先需要明白三者之间的转换)   

   自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式
 
    举例说明将自然表达式转换成二叉树:
 
    a×(b+c)-d
 
    ① 根据表达式的优先级顺序,首先计算(b+c),形成二叉树
   tree1.JPG
   
   ②然后是a×(b+c),在写时注意左右的位置关系
   tree2.JPG
 
   ③最后在右边加上-d
   tree3.JPG
 
 
  然后最这个构造好的二叉树进行遍历,三种遍历的顺序分别是这样的:
 
   ① 前序遍历:根-左-右
   ② 中序遍历:左-根-右
   ③ 后序遍历:左-右-根
 
    所以还是以刚才的这个例子,在最终二叉树的基础上可以得出:
 
    前缀表达式:-*a+bcd
    中缀表达式:a*b+c-d
    后缀表达式:abc+*d-

转载于:https://www.cnblogs.com/Ph-one/p/10060746.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值