qq_43412960 2020-04-22 12:59 采纳率: 78.6%
浏览 202
已采纳

这是一个关于数据结构二叉树遍历的问题

a+b*(c-d)-e/f

的先序是

-+a*b-cd/f

请问这是如何推到出来的呢?
先序,我个人认为是把运算符都放最前面,但是并没有那样,字母中间还放了一些,迷茫,求解

  • 写回答

2条回答 默认 最新

  • 小于零 2020-04-22 16:32
    关注

    你好呀,这个问题属于 中缀表达式 和 前缀表达式(也称波兰式)的相互转换。
    以下是我的纸质演算过程。

    图片说明
    图片说明

    希望能帮助到你!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • threenewbee 2020-04-22 13:12
    关注
    这个问题很简单
    我们用函数调用表示表达式,比如
    int add(int a, int b) { return a + b; }
    int sub(int a, int b) { return a - b; }
    int mul(int a, int b) { return a * b; }
    int div(int a, int b) { return a / b; }
    比如
    1+1
    可以写
    add(1, 1);
    2+3*5可以写
    add(2, mul(3, 5));
    那么
    a+b*(c-d)-e/f
    就是
    sub(add(a, mul(b, sub(c, d))),div(e, f))
    我们把add sub mul div换成 + - * /,去掉括号和逗号
    - + a * b - c d / e f
    就是前缀了
    
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)
  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。
  • ¥100 高博一起做RGB-D SLAM(5)VO无法出visualisation问题
  • ¥15 使用matlab进行手眼标定的仿真验证,得到齐次矩阵与opencv相差较大