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

甘肃省水利建设工程项目网站交通运输部: 优化交通运输领域防控

甘肃省水利建设工程项目网站,交通运输部: 优化交通运输领域防控,本机快速做网站,南京网页设计培训机构文章目录数组模拟栈类中缀表达式计算器类#xff08;测试类#xff09;数组模拟栈类 主要实现栈的一些基本功能#xff0c;以及在该场景下的功能。 //先创建一个栈 class AStack {private int maxSize; //栈的大小private int[] stack; //数组模拟栈private int top -1; … 文章目录数组模拟栈类中缀表达式计算器类测试类数组模拟栈类 主要实现栈的一些基本功能以及在该场景下的功能。 //先创建一个栈 class AStack {private int maxSize; //栈的大小private int[] stack; //数组模拟栈private int top -1; //栈顶初始化-1//构造器public AStack(int maxSize) {this.maxSize maxSize;stack new int[maxSize];}//栈满public boolean isFull(){return top maxSize - 1;}//栈空public boolean isEmpty(){return top -1;}//入栈public void push(int value){if (isFull()){System.out.println(栈满入栈失败);return;}top;stack[top] value;}//出栈public int pop(){if (isEmpty()){throw new RuntimeException(栈空出栈失败);}return stack[top--]; //先得到stack[top]然后top--}//返回栈顶值public int peek(){return stack[top];}//遍历从栈顶向下public void show(){if (isEmpty()){System.out.println(栈空);return;}for (int i top; i 0; i--) {System.out.printf(stack[%d] %d\n,i,stack[i]);}}//返回运算符优先级约定数值越大优先级越高public int priority(char operator){if (operator * || operator /){return 1;}else if (operator || operator -){return 0;}else return -1; //假设只有加减乘除}//判断是不是运算符public boolean isOperator(char value){return value || value - || value * || value /;}//两数计算方法public int cal(int num1,int num2,char operator){int result 0; //计算结果switch (operator){case :result num2 num1;break;case -:result num2 - num1;break;case *:result num2 * num1;break;case /:result num2 / num1;break;}return result;} }中缀表达式计算器类测试类 主要实现计算的逻辑。 public class Calculate {public static void main(String[] args) {String expression 540*4-3; //162AStack numStack new AStack(10); //数栈AStack opeStack new AStack(5); //运算符栈//定义需要的变量int index 0; //用于扫描表达式int num1 0;int num2 0;int ope 0;int res 0; //用于临时保存两数运算结果char ch ; //每次扫描得到的字符String keepNum ; //用于拼接多位数//扫描表达式while (true){//扫描一个表达式字符ch expression.substring(index,index1).charAt(0);//判断ch是数还是运算符并处理if (opeStack.isOperator(ch)) {//是运算符if (opeStack.isEmpty()){//运算符栈为空直接入栈opeStack.push(ch);}else {//不为空if (opeStack.priority(ch) opeStack.priority((char) opeStack.peek())){//新的运算符优先级大于栈顶运算符的优先级直接入栈opeStack.push(ch);}else {//小于等于则数栈pop两个,运算符栈pop一个进行运算将结果入数栈、新运算符入运算符栈num1 numStack.pop();num2 numStack.pop();ope opeStack.pop();res numStack.cal(num1,num2, (char) ope);numStack.push(res);opeStack.push(ch);}}}else {//是数keepNum ch;if (index expression.length() - 1){numStack.push(Integer.parseInt(keepNum));}else {if (numStack.isOperator(expression.substring(index1,index2).charAt(0))){//后一位是运算符则当前的可以直接入数栈numStack.push(Integer.parseInt(keepNum));keepNum ; //清空}}}index;if (index expression.length()){//扫描到最后break;}}//扫描结束就顺序pop运算符栈和数栈进行运算如何每次将结果入数栈while (true){if (opeStack.isEmpty()){//运算符栈为空则运算结束break;}num1 numStack.pop();num2 numStack.pop();ope opeStack.pop();res numStack.cal(num1,num2, (char) ope);numStack.push(res);}//数栈最后一个数即为表达式结果System.out.printf(表达式 %s %d,expression,numStack.pop());} }
http://www.zqtcl.cn/news/591119/

相关文章:

  • 陕西建设厅网站wordpress 不显示ip
  • 郑州外贸网站制作营销号视频生成器手机版
  • 绵阳市建设工程质量监督站网站wordpress的插件目录
  • 建设和管理环保网站西安做兼职网站设计
  • 在网站中写小说想要删除如何做婚纱摄影的网站怎么做
  • 重庆自适应网站建设wordpress添加icon文件
  • 目前小说网站排名适合网站设计的gif图片
  • 深圳建立网站wordpress 安装语言
  • 南京做中英文网站海南网站建设哪家专业
  • 做网站用jquerywordpress邮件有什么用
  • 上海网站建设免the 7 wordpress
  • 知名建站的公司微信企业app手机下载安装
  • 鹤山做网站羊毛网站建设视频
  • 图书类网站开发的背景建筑培训机构
  • 外贸网站建设制作wordpress管理员页面404
  • 北郊网站建设app网站开发哪里有
  • 像素人物制作网站网站开发的话术
  • 网站关键词怎么优化排名wordpress电子商城模板
  • 电子商务网站建设与维护能赚多少钱成交型网站建设
  • 到国外做网站网站是怎么回事中国一级建造师网官网
  • 惠州网站建设哪家好网站对图片优化
  • 酒店网站建设报价详情wordpress表单留言
  • 58同城做公司网站怎修改在线葡京在线葡京
  • 家纺网站模板wordpress折叠菜单
  • 建设信用中国网站站群系统破解版
  • 百度怎么投放广告凡科网站可以做seo优化
  • 医院网站建设 不足好的手机网站建设公司
  • 简历上作品展示网站链接怎么做wordpress的登陆地址修改密码
  • 深圳做响应式网站公司公司网站开发费用放在什么科目
  • 网站页面上的悬浮窗怎么做简单好看的版面设计图