- 31
- 0
- 约3.96千字
- 约 4页
- 2019-07-03 发布于浙江
- 举报
5 将中缀表达式转换为后缀表达式
【问题描述】表达式转换。输入的中缀表达式为字符串,转换得到的后缀表达式存入字符数组中并输出。
例如: a*(x+y)/(b-x) 转换后得: a x y + * b x - /
【数据结构】
定义一个暂时存放运算符的转换工作栈opst。
中缀表达式字符串char *infix;
后缀表达式字符串char *postfix;
【算法提示】转换规则:把运算符移到它的两个操作数后面,删除掉所有的括号。
从头到尾扫描中缀表达式,对不同类型的字符按不同情况处理:
数字或小数点,直接写入字符串postfix,并在每个数值后面写入一个空格;
左括号,进栈,直到遇见相配的右括号,才出栈;
右括号,表明已扫描过括号内的中缀表达式,把从栈顶直到对应左括号之间的运算符依次退栈,并把结果推入栈内;
对于运算符,分两种情况处理:
该运算符的优先级大于栈顶符号的优先级,则入栈;
若该运算符的优先级小于栈顶优先级,则先弹出栈顶运算符、写入postfix串;继续将该运算符与栈顶运算符比较,直到能把它推入栈内为止(即优先级大于栈顶运算符)。
说明:自行设计运算符优先级的表示。
【主要代码】
#include assert.h
#include iostream.h
//#include stdlib.h
const int stackIncreament=20;
class
您可能关注的文档
最近下载
- 道亨TwSolid放样软件操作规程.doc VIP
- 2026年中国人工智能芯片产业发展报告.docx
- 《百度软件下载.doc VIP
- 增补更新2016 11 08乔帮主交割单整理.pdf VIP
- 2026湖北汉江集团公司所属企业招聘技能人员94人(第二批)笔试历年备考题库附带答案详解.docx VIP
- 衣拿智能吊挂系统软件使用教程.pdf
- 人教版小升初数学试题及答案(可直接打印).docx VIP
- 泛光照明整套开工报告及竣工竣工资料表格.docx VIP
- 开放系统11840《当代中国政治制度》期末机考真题及答案(第110套).docx VIP
- 2026年食品加工公司产品召回管理制度.docx VIP
原创力文档

文档评论(0)