【基础知识】【中缀转逆波兰(后缀)表达式】
2015-07-17 01:51
288 查看
目的:将中缀表达式(即标准形式的表达式)转换为后缀式。
例子:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+
转换原则:
1.当读到一个操作数时,立即将它放到输出中。操作符则不立即输出,放入栈中。遇到左圆括号也推入栈中。
2.如果遇到一个右括号,那么就将栈元素弹出,将符号写出直到遇到一个对应的左括号。但是这个左括号只被弹出,并不输出。
3.在读到操作符时,如果此时栈顶操作符优先性大于或等于此操作符,弹出栈顶操作符直到发现优先级更低的元素位置。除了处理)的时候,否则决不从栈中移走"("。操作符中,+-优先级最低,()优先级最高。
4.如果读到输入的末尾,将栈元素弹出直到该栈变成空栈,将符号写到输出中。
例子:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+
转换原则:
1.当读到一个操作数时,立即将它放到输出中。操作符则不立即输出,放入栈中。遇到左圆括号也推入栈中。
2.如果遇到一个右括号,那么就将栈元素弹出,将符号写出直到遇到一个对应的左括号。但是这个左括号只被弹出,并不输出。
3.在读到操作符时,如果此时栈顶操作符优先性大于或等于此操作符,弹出栈顶操作符直到发现优先级更低的元素位置。除了处理)的时候,否则决不从栈中移走"("。操作符中,+-优先级最低,()优先级最高。
4.如果读到输入的末尾,将栈元素弹出直到该栈变成空栈,将符号写到输出中。
相关文章推荐
- 【基础知识】【中缀转逆波兰(后缀)表达式】
- C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法
- UVa-1595 - Symmetry
- iOS @property 后面 修饰符
- UVa-10391 - Compound Words
- UVa-10763 - Foreign Exchange
- 我的Android进阶之旅------>如何为ListView组件加上快速滑块以及修改快速滑块图像
- c语言结构体赋值,并输出各种类型变量的值
- python
- UVa-10935 - Throwing cards away I
- UVa-1594 - Ducci Sequence
- HDOJ题目3729 I'm Telling the Truth(二分图)
- Fans-rt 任务局部变量特性设计方案(需求分解)
- Linux磁盘分区-格式化-加载-卸载
- ADB server didn’t ACK解决办法
- 51单片机学习笔记【二】——按键实验
- 最早延迟时间优先运行的实现
- HDU3779 Railroad JAVA版题解+深搜
- TCP协议中的三次握手和四次挥手(图解)
- UVa-1593 - Alignment of Code