当前位置: 首页 > news >正文

网站制作学校/关键字挖掘机爱站网

网站制作学校,关键字挖掘机爱站网,网站做多语言,搜索引擎优化工作主要做好哪些方面中缀表达式:就是我通常用的算术或逻辑公式; 后缀表达式:不包含括号,运算符放在两个运算对象后面,所有的计算按运算符出现的顺序,严格从左向右进行,不用考虑运算符优先级; 如&#xf…

中缀表达式:就是我通常用的算术或逻辑公式;

后缀表达式:不包含括号,运算符放在两个运算对象后面,所有的计算按运算符出现的顺序,严格从左向右进行,不用考虑运算符优先级;

如,(2+1)*3 转换后,2 1 + 3 *

1、人工实现转换

如中缀表达式:a+b*c-(d+e)

  (1)、按照运算符优先级对所有运算单位加括号,式子变成:((a+(b*c))-(d+e))

  (2)、把运算符号移动到对应括号后面,变成:((a(bc)*)+(de)+)-

  (3)、把括号去掉就变成后缀表达式了:abc*+de+-

2、中缀转后缀算法:

如中缀表达式:(1+2)*((8-2)/(7-4))

  (1)、设立一个空栈,用于存放运算符

  (2)、从左向右扫描,如果是操作数,直接输出;如果遇到左括号直接进栈,如果遇到右括号,则一直退栈,直到遇到左括号;如果是运算符,要和栈顶运算符比较(此处运算符比较就是+、-、*、/四则运算比较),比栈顶级别高,进栈,否则输出栈顶运算符(比较一次),然后运算符进栈

  (3)、如果栈中剩有运算符,则依序出栈

例子:

//        var expression = '(1+2)*((8-2)/(7-4))';var expression ='3+(2-5)*6/3'var obj = {'+': 0, '-': 0, '*': 1, '/': 1, '(': -1};var arr = [];var str = '';for (var i = 0; i < expression.length; i++) {var curChar = expression[i];if (curChar == ' ') {continue;}var num = /^\d$/.test(curChar);if (num) {str = str + curChar + ' ';continue;} else if (curChar == '(') {arr.push(curChar);} else if (curChar == ')') {var len = arr.length;for (var j = 0; j < len; j++) {var pop = arr.pop();if (pop != '(') {str = str + pop + ' ';} else {break;}}} else {if (arr.length > 0) {var top = arr[arr.length - 1];if (obj[curChar] > obj[top]) {arr.push(curChar);} else {var pop = arr.pop();arr.push(curChar);str = str + pop + ' ';}} else {arr.push(curChar);}}}for(var i=arr.length-1;i>=0;i--){str = str + arr[i] + ' ';}console.log(str);
中缀转后缀

 3、后缀表达式求职算法

  (1)、设定一个空栈

  (2)、从左向右扫描后缀表达式

  (3)、如果是操作数入栈,如果是运算符,从栈中取出两个数,进行运算(如果使用js数组,pop方法弹栈,那么将先出的放在运算符右边,后出的在左边),再将结果入栈

直到后缀表达式扫描完毕,栈中仅有一个元素,即为运算结果

依然使用上面的表达式,console.log(calculatePostfix(str));

function calculatePostfix(postfixExp) {var arr = [];for (var i = 0; i < postfixExp.length; i++) {var curVal = postfixExp[i];if(curVal==' '){continue;}switch (curVal) {case '+':{var pop1 = arr.pop();var pop2 = arr.pop();var res=parseFloat(pop2)+parseFloat(pop1);arr.push(res);break;}case '-':{var pop1 = arr.pop();var pop2 = arr.pop();var res=parseFloat(pop2)-parseFloat(pop1);arr.push(res);break;}case '*':{var pop1 = arr.pop();var pop2 = arr.pop();var res=parseFloat(pop2)*parseFloat(pop1);arr.push(res);break;}case '/':{var pop1 = arr.pop();var pop2 = arr.pop();var res=parseFloat(pop2)/parseFloat(pop1);
                    arr.push(res);break;}default :{arr.push(curVal);break;}}}return arr[0];}
后缀表达式运算

 

http://www.jmfq.cn/news/5203117.html

相关文章:

  • 网站建设商城/游戏推广赚佣金
  • 搞笑网站源码/北京seo技术
  • 如果做镜像网站/国内搜索引擎排名2022
  • 免费做网站怎么做网站ma/seol英文啥意思
  • 中英文网站是怎么做的/最全bt磁力搜索引擎索引
  • 青岛建立网站电话/湖南网站营销seo多少费用
  • 广元市建设局网站/宁波seo关键词排名优化
  • 免费申请网站空间及域名/中国万网官网登录
  • 江苏建设信息网站/深圳网络公司推广公司
  • 绵阳网站建设 经开区/长沙网站seo优化
  • 美女做爰直播在线网站/朋友圈产品推广文案
  • 网站建设教学点/网站单向外链推广工具
  • 江苏网站建设怎么样/二十条优化疫情措施
  • 郑州市二七建设局网站/跨境网站建站
  • 郴州网站建设推广服务/站群seo
  • 长沙市网站建设/化工网站关键词优化
  • 适合做浏览器主页的网站/营销策划方案ppt模板
  • 美国对华为进行网络窃密/百度搜索引擎优化案例
  • 式网站/福州seo推广公司
  • 天空台108网站找手工活带回家做/sem广告投放是做什么的
  • 青县网站建设公司/郑州官网网站推广优化
  • 王占军/京东seo搜索优化
  • 网站logo名词解释/上海优化公司有哪些
  • wap网站开发协议/知名品牌营销案例100例
  • 做网站最烂公司/香港百度广告
  • 一级a做爰片免费网站孕交视频教程/杭州百度推广公司有几家
  • 阿里巴巴的网站怎么做/搜索引擎优化培训免费咨询
  • 可以做兼职的网站/石嘴山网站seo
  • 做一个网站要注意什么东西/百度指数网页版
  • wordpress 评论已关闭/公司网站如何seo