一、设计思路:
由于设计到了表达式,很自然的想到了是否可以使用表达式树来设计程序。本程序的确使用了表达式树,也是程序最关键的环节。简要概括为:先列出所有表达式的可能性,然后运用表达式树计算表达式的值。程序中大量的运用了递归,各个递归式不是很复杂,大家耐心看看,应该是能看懂的
表达式树:
表达式树的所有叶子节点均为操作数(operand),其他节点为运算符(operator)。由于本例中都是二元运算,所以表达式树是二叉树。下图就是一个表达式树
代码
具体步骤:
1、遍历所有表达式的可能情况
遍历分为两部分,一部分遍历出操作数的所有可能,然后是运算符的所有可能。全排列的计算采用了递归的思想
2、根据传入的表达式的值,构造表达式树
由于表达式树的特点,所有操作数均为叶子节点,操作符为非叶子节点,而一个表达式(例如(((6+4)-2)*3)=24)只有3个运算符,即一颗表达式树只有3个非叶子节点。所以树的形状只有两种可能,就直接写死了
模型
3、计算表达式树的值
也运用了递归
4、输出所有可能的表达式
还是运用了递归
5、输出结果
论如何科学地经营餐厅:《美味餐厅13:瓶中信笺》
《美味餐厅13:瓶中信笺(Delicious-Emily'sMessageinaBottle)》是一款由GameHouse发行的餐厅经营类游戏,该作品是美味餐厅系列的第13部作品,其不论是内容还是玩法上相比前作都有了进步,对于该游戏的粉丝玩家来说绝对不容错过。GameHouse专注《美味餐厅...
快速入门爬虫1-0基础采集入门知识
欢迎来到小白的数据梦工厂,很高兴你对爬虫感兴趣,并且想要学习爬虫,或者想从网页上采集一些数据。先自我介绍一下,我是八爪鱼采集器的创始人刘宝强,八爪鱼是全球领先的网页数据采集平台,为全球70万企业和个人每天采集上亿条数据。恭喜你在众多的爬虫入门方式中选择了八爪鱼,这是一个非常好的起点,你将从一开始就站...
一首歌讲一个故事,《一荤一素》的背后原来这么感人
《此生未完成的》的作者于娟曾说过:如果回到曾经,我一定会放弃一些东西,花更多的时间陪伴我的儿子和丈夫,可我现在却将离开这个世界。或许事业和惬意的生活本来就是矛盾的,或许我们再次面对选择会依旧如此,又或许我们正是因为遗憾才叫人生。有时一首歌说了一个故事,又有时一首歌讲述了一个人生。毛不易《一荤一素》毛...
召唤流大火,《暗黑破坏神:不朽》死灵法师最强BD构建
最近一直都在玩《暗黑破坏神:不朽》,选择的职业是暗黑系列游戏中比较得宠的职业——死灵法师。不过与其他暗黑不同,不朽中的死灵打法有点结合了暗黑3中的巫医,所以根据这个特点,我们可以有几种配装方式。下面就给小伙伴们展示一下。比如头盔的选择,死灵的头盔有三种推荐,第一:镜像之御召唤系列比较好用的一款头盔,...