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

哪个网站可以接cad图纸做推广app的营销方案

哪个网站可以接cad图纸做,推广app的营销方案,中企动力建设网站,电子工程网官方网站问题背景 1. 实现一个简单的计算器。通过键盘输入一个包含圆括号、加减乘除等符号组成的算术表达式字符串#xff0c;输出该算术表达式的值。要求#xff1a; #xff08;1#xff09;系统至少能实现加、减、乘、除等运算#xff1b; #xff08;2#xff09;利用二叉…问题背景 1. 实现一个简单的计算器。通过键盘输入一个包含圆括号、加减乘除等符号组成的算术表达式字符串输出该算术表达式的值。要求 1系统至少能实现加、减、乘、除等运算 2利用二叉树算法思想求解表达式的值先构造由表达式构成的二叉树按中序、后序遍历的方式输出二叉树中的结点然后再利用通过对二叉树进行后序遍历求解算术表达式的值。 思路描述 构建表达式二叉树先用栈将算术表达式转成后缀表达式具体思路参考再根据后缀表达式构建表达式二叉树构建过程从左到右扫描后缀表达式的每个元素如果当前元素是操作数则创建一个只包含该操作数的节点并将该节点压入栈中如果当前元素是操作符则创建一个只包含该操作符的节点并从栈中弹出两个节点作为其左右子节点再将该节点压入栈中。最后栈中唯一的节点即为根节点。表达式二叉树求值后序遍历二叉树递归计算左右子树的值代入运算符计算 代码实现 //二叉链表存储二叉树 public class TreeNode {String value;TreeNode left;TreeNode right;public TreeNode(String value){this.valuevalue;}public TreeNode(String value, TreeNode left, TreeNode right) {this.value value;this.left left;this.right right;} } public class Calculator {private TreeNode root;public Calculator() {root null;}public Calculator(TreeNode root) {this.root root;}//中缀转后缀List中每个元素就是后缀表达式中每个操作数或运算符public static ListString infixToPostfix(String infixExpression){StackCharacter operatorStacknew Stack();ListString postfixExpressionnew ArrayList();for(int i0;iinfixExpression.length();i){//如果是数字if(Character.isDigit(infixExpression.charAt(i))){//可能是多位的数StringBuilder tempnew StringBuilder();temp.append(infixExpression.charAt(i));while (iinfixExpression.length()Character.isDigit(infixExpression.charAt(i))){temp.append(infixExpression.charAt(i));}postfixExpression.add(temp.toString());i--;//while判断完后i多往后挪了一位所以要-1}//如果是左括号else if(infixExpression.charAt(i)(){operatorStack.push(infixExpression.charAt(i));}//如果是右括号去匹配左括号else if(infixExpression.charAt(i))){while (!operatorStack.empty()operatorStack.peek()!(){postfixExpression.add(operatorStack.pop());}operatorStack.pop();}//如果是-*/else {//将优先级当前运算符优先级的运算符pop出来追加到后缀表达式中while (!operatorStack.empty()getPrecedence(infixExpression.charAt(i))getPrecedence(operatorStack.peek())){postfixExpression.add(operatorStack.pop());}operatorStack.push(infixExpression.charAt(i));}}//将栈中剩余的运算符依次pop出来追加到结果中while (!operatorStack.empty()){postfixExpression.add(operatorStack.pop());}return postfixExpression;}//在中缀转后缀时要判断符号优先级private static int getPrecedence(char operator) {switch (operator) {case :case -:return 1;case *:case /:case %:return 2;default:return 0;}}//利用后缀表达式构建表达式二叉树public static TreeNode buildExpressionTree(ListString postfixExpression){StackTreeNode stacknew Stack();//从左至右遍历后缀表达式for(String str:postfixExpression){//如果是运算数if(str.charAt(0)48str.charAt(0)57){TreeNode treeNode new TreeNode(str, null, null);stack.push(treeNode);} else {//如果是运算符//从栈中弹出两个节点TreeNode pop1 stack.pop();TreeNode pop2 stack.pop();TreeNode treeNode new TreeNode(str, pop1, pop2);stack.push(treeNode);}}//最后栈中剩余的节点就是二叉树根节点return stack.peek();}//中序遍历表达式二叉树(左根右)public static void inorderTraversal(TreeNode treeNode){if(treeNodenull)return;inorderTraversal(treeNode.left);System.out.print(treeNode.value );inorderTraversal(treeNode.right);}//后序遍历表达式二叉树左右根public static void postorderTraversal(TreeNode treeNode){if(treeNodenull)return;postorderTraversal(treeNode.left);postorderTraversal(treeNode.right);System.out.print(treeNode.value );}//后序遍历表达式二叉树求值public int evaluateExpression(){return evaluateExpression(root);}public int evaluateExpression(TreeNode root){if(rootnull){return 0;}// 递归计算左右子树的值int leftValue evaluateExpression(root.left);int rightValue evaluateExpression(root.right);switch (root.value){case :return leftValuerightValue;case -:return leftValue-rightValue;case *:return leftValue*rightValue;case /:return leftValue/rightValue;default:// 如果是操作数则返回对应的整数值return Integer.valueOf(root.value);}} } 运行效果 public class Main {public static void main(String[] args) {System.out.println(请输入你要计算的表达式);Scanner sc new Scanner(System.in);String infixExpression sc.next();ListString postfixExpression Calculator.infixToPostfix(infixExpression);//中缀转后缀TreeNode binaryTree Calculator.buildExpressionTree(postfixExpression);//利用后缀表达式构建表达式二叉树System.out.print(中序遍历);Calculator.inorderTraversal(binaryTree);//中序遍历System.out.println();System.out.print(后序遍历);Calculator.postorderTraversal(binaryTree);//后序遍历System.out.println();Calculator calculator new Calculator(binaryTree);int i calculator.evaluateExpression();System.out.println(值为i);} }
http://www.w-s-a.com/news/632971/

相关文章:

  • 小程序怎么做优惠券网站合肥建站网站平台
  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板
  • 给企业建设网站的流程图wordpress 添加子菜单
  • 企业网站带新闻发布功能的建站皋兰县建设局网站
  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做