表达式树

    表达式树通过二叉树来表示一个表达式。它的树叶是操作数,比如常数或变量,而其他的节点是操作符。通过递归的计算左子树和右子树所得到的值应用在根处的运算符操作中而算出表达式的值。

    可以通过递归产生一个带括号的左表达式,然后打印出在根处的运算符,最后再递归的产生一个带扩号的有表达式而得到一个中缀表达式。这种一般的方法(左,节点,右)称为中序遍历。

    递归打印出左子树、右子树,然后打印运算符。输出将是后缀表达式。这种表达式称为后序遍历。

    先打印出运算符,然后递归的打印出右子树和左子树。这种遍历称为先序遍历。

===================================================================================

    将后缀表达式转换成表达式树

    一次一个的读入表达式。如果符号是操作数,那就建立一个单节点树并将一个指向他的指针推入栈中。如果符号是操作符,那么就从栈中弹出指向两棵树T1和T2的那两个指针并形成一棵新的树,该树的根就是操作符,他的左右儿子分别指向T2和T1。然后将指向这棵树的指针重新推入栈中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值