如何解析表达式生成操作树?

kathy_koo 2021-02-28 12:12:51
假设我有表达式如这种形式


"1+2-3*4/5+(6/7*8-2)"


假设操作数永远只有0-9
操作符也永远只有+-*/
优先级符合也只会出现()

请问如何解析表达式,通过生成操作树来得到表达式的计算结果double型
我能手绘出生成的操作树,却写不出来怎么生成
(这题接近手写简单的编译器,解析token,生成操作树,操作数转成压栈,然后执行,然后可以假设输入永远合适,不会有语法错误,因为token解析我会写,但解析出来的token转操作树或者压栈不会)
...全文
37 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧