- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IT公司面试题收集整理---数据结构相关复习---算术表达式求值算法(带括号递归运算)
BBS.SASAOO.COM -- 财经 医疗 软件 娱乐 养生 综合信息论坛
IT 公司面试题收集整理数据结构相关复习算术表达式求值算法(带括号递
归运算)
首先声明,这仅仅是一个算法的雏形,实用率几乎为0。我只说这个思想。代码是用java 写的,可以运行,但是表
达式和中间值不能为负数【因为我用的java 的字符串截取,如果使用C 语言的话,在不带括号的情况中,就没有
这个问题了,也可以为负数】,下面我写出我的想法,然后你就知道为什么不能为负数了。
第一:判断有没有括号,有的话,遇到一个右括号,那么就截取对应的左括号与右括号之间的字符串,还要让字符
串加一个=。【因为没有括号的方法中限制的】
第二:如果现在只有加减乘除的话,比如说1+2*3+4+5-5=,就进入循环
第三:分为两个栈,遇到一个符号的时候,先放数字栈数据,然后比较符号栈的顶部,与即将放入栈的符号,进行
比较。如果即将进栈的优先级比顶部的优先级低,那么
数字栈出两个,符号栈出一个,进行计算,结果放到数字栈,即将放入栈的符号现在也放入栈。
第四:遇到等号的话,全部出栈。栈为空的话,返回数字栈的第一个值。【即最终结果】
[java] view plaincopyprint?
1. package 计算器;
2.
3. public class Demo {
4. public double number[] = new double [6];// 数字栈
5. public char sign[] = new char[6];// 符号栈,*/=优先级大于+-优先级
6. public int topNum = -1;// 头指针
7. public int topSign = -1;// 头指针
8.
9. // 表达式求值,带括号算法,注意:表达式一定要正确,并且不能出现负数,因为这个算法用的是字
符串截取
10. public double evaluation(String string) throws Exception {// 参数代表正确的表达式
11. double result = 0;
12. // 如果式子中包含括号,截取括号匹配中的字符串
13. if (string.contains(() || string.contains())) {
14. int temp = 0;
15. fo r (int i = 0; i string.length(); i++) {
16. if (string.charAt(i) == () {// 碰到左括号,记录下来
17. temp = i;
18. continue;
19. }
20. if (string.charAt(i) == )) {// 碰到右括号,进行递归,实际上相当于出栈
21. string = string.substring(0, temp)
22. + evaluation(string.substring(temp + 1, i) + =)// 加个等号继续递
归
BBS.SASAOO.COM
BBS.SASAOO.COM -- 财经 医疗 软件 娱乐 养生 综合信息论坛
23. + string.substring(i + 1);
24. System.out.println(string);
25. i = -1;
26. continue;
27. }
28. }
29. }
30. // 现在式子
您可能关注的文档
- 802D 操作编程手册(铣床)部分8.pdf
- 8.医院消毒供应中心第2部分:清洗消毒及灭菌技术操作规范(黄靖雄).pdf
- 9hl水利水电基本建设工程 单元工程质量等级评定标准 升压变压电气电气设备安安装工程 SDJ 2496-88.pdf
- ACS抗栓治疗进展-解读指南(终版).pdf
- A公司新员工训练营管理办法.pdf
- BS EN 857-1997 橡胶软管和软管配件 液压设备用金属丝编织增强压制型 规范.pdf
- CATIA5教程讲义(三)167-255.pdf
- CNAS-CL28:2014 司法鉴定/法庭科学机构能力认可准则在法医物证DNA鉴定领域的应用说明.pdf
- Coolpix完胜尼康P500佳能SX30对比评测.pdf
- EICAD平面设计流程.pdf
- 安全生产考核奖惩制度3篇.doc
- 颅脑损伤病人的护理查房【优质公开课】精品PPT课件模板.pptx
- 二零二二年度德州继续教育公需科目《公共事务管理与服务能力》试题及答案.pdf
- 二零二二年度党风廉政建设知识竞赛题库(含答案).pdf
- 二零二二年度度枣庄市专业技术人员继续教育公需科目培训班互动题.pdf
- 二零二二年度儿童保健学试题库(含答案).pdf
- 二零二二年度第十九届中国东南地区数学奥林匹克竞赛高一试题(含答案).pdf
- 二零二二年度动物卫生监督题库(含答案).pdf
- 黑龙江省大庆市重点中学2023-2025学年高一下学期2月开学考试英语试题(含解析).docx
- 二零二二年度法检书记员招考《公基》测试题库(含答案).pdf
文档评论(0)