算法第四版 用java实现由中序表达式转换为后续表达式
来源:互联网 发布:fc2的域名怎么设置 编辑:程序博客网 时间:2024/05/29 08:13
遇到数字时压入datastack栈,遇到操作符压入optrstack栈,遇到右括号时取出datastack的两个数,与操作符组成一个字符串继续压入datastack
import java.util.Stack;public class InfixToPostfix { private String infixToPostfix(String str) { Stack<String> dataStack = new Stack<>(); Stack<String> optrStack = new Stack<>(); for (int i = 0; i < str.length(); i++) { if(isDigital(str.charAt(i)))//处理数字 dataStack.push(String.valueOf(str.charAt(i))); else if(isOperator(str.charAt(i)))//处理操作符 optrStack.push(String.valueOf(str.charAt(i))); else if(str.charAt(i) == ')')//处理右括号的情况 { String d1 = dataStack.pop(); String d2 = dataStack.pop(); String opt = optrStack.pop(); String ext = d2 + d1 + opt; dataStack.push(ext); } else if(str.charAt(i) == '(') continue; } while(optrStack.size() > 0) { String d1 = dataStack.pop(); String d2 = dataStack.pop(); String opt = optrStack.pop(); String ext = d2 + d1 + opt; dataStack.push(ext); } return dataStack.pop(); } private boolean isOperator(char ch) { return ch == '+' || ch == '-' || ch == '*' || ch == '/'; } private boolean isDigital(char ch) { return ch <= '9' && ch >= '0'; } public static void main(String[] args) { String str = "(1+2)*(3*(4+5))"; InfixToPostfix ip = new InfixToPostfix(); String res = ip.infixToPostfix(str); System.out.println(res); }}
阅读全文
0 0
- 算法第四版 用java实现由中序表达式转换为后续表达式
- 《算法(第四版)》 习题:1.3.10 将算术表达式由中序表达式转为后序表达式
- Java数据结构——中序表达式转后续表达式实现
- JAVA实现中缀表达式转换为后缀表达式并计算
- 数据结构Java实现06----中缀表达式转换为后缀表达式
- 数据结构Java实现06----中缀表达式转换为后缀表达式
- 数据结构Java实现06----中缀表达式转换为后缀表达式
- 中缀表达式转换为后缀表达式算法
- 中序表达式转换为后序表达式
- 中序表达式转换为逆波兰表达式
- Java 中缀表达式转换为后缀表达式
- “中序表达式”转换为“前序表达式”、“后序表达式”
- “中序表达式”转换为“前序表达式”、“后序表达式”
- 中缀表达式转换为后缀表达式的算法
- 中缀表达式转换为后缀表达式的算法
- 中缀表达式转换为前缀后缀表达式的算法流程图
- 中缀表达式转换为前缀及后缀表达式并求值(java实现)
- 正则表达式第四篇(Java中使用正则表达式)
- nDPI代码深度解析(二)
- python数据类型(一)
- 关于台湾旅游和日本旅游以及港澳台旅游的经验
- 【论文阅读】Fused Text Segmentation Network for Multi-oriented Scene Text Detection
- 如何更改Eclipse里java项目的JRE
- 算法第四版 用java实现由中序表达式转换为后续表达式
- 72. Edit Distance
- hdu 3657 Game(最小割,方格取数)
- 单片机系列(1)从第一行代码到跑马灯的制作
- TensorFlow学习笔记:1、TensorFlow快速下载与安装
- 页面跳转
- log4j2配合slf4j使用
- Python中的struct模块
- 电力系统--杆塔