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

企业网站建设搜集资料天眼查企业查询下载

企业网站建设搜集资料,天眼查企业查询下载,北京市城乡建设学校网站,携程的网站建设项目规划书中缀表达式 中缀表达式#xff08;中缀记法#xff09;是一个通用的算术或逻辑公式表示方法#xff0c;操作符是以中缀形式处于操作数的中间#xff08;例#xff1a;3 4#xff09;#xff0c;中缀表达式是人们常用的算术表示方法。 前缀或后缀记法不同的是#xf…中缀表达式 中缀表达式中缀记法是一个通用的算术或逻辑公式表示方法操作符是以中缀形式处于操作数的中间例3 4中缀表达式是人们常用的算术表示方法。 前缀或后缀记法不同的是中缀记法中括号是必需的。计算过程中必须用括号将操作符和对应的操作数括起来用于指示运算的次序。 后缀表达式 逆波兰表示法Reverse Polish notationRPN或逆波兰记法是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式在逆波兰记法中所有操作符置于操作数的后面因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。 中缀表达式转后缀表达式 中缀转后缀思路 初始化两个栈运算符栈S1操作数栈S2从左向右扫描中缀表达式遇到操作数时将其压入到操作数栈S2遇到运算符时比较其与运算符栈S1栈顶运算符的优先级如果运算符栈S1为空或栈顶运算符为左括号“ ( ”或者优先级比栈顶运算符的优先级较高则直接将此运算符压入栈中否则将运算符栈S1中栈顶的运算符弹入并压到操作数栈S2中再次进行与运算符栈S1栈顶运算符的优先级比较遇到括号时如果遇到了左括号“ ( ”则直接压入运算符栈S1如果遇到右括号“ ) ”则依次弹出运算符栈S1栈顶的运算符并压入操作数栈S2直到遇到左括号 ( 为止此时将这一对括号丢弃重复步骤2至8直到表达式的最右边将运算符栈S1剩余的运算符依次弹出并压入操作数栈S2拼接操作数栈S2中的元素并输出结果即为中缀表达式所对应的后缀表达式 中缀转后缀图示 下图是以9-2*3(5-2)*2为例子的完整过程。 中缀转后缀流程图 中缀转后缀代码分析 主函数 先初始化一下需要转化为后缀记法的字符串然后给一个用来存储后缀表达式的数组假设中缀转后缀的函数为MidtoLast给这个函数传入中缀表达式的字符数组midstr以及存储后缀表达式的字符数组laststr int main() {char midstr[] 9-2*3(5-2)*2;//中缀表达式printf(中缀表达式为%s\n, midstr);char laststr[100];//后缀表达式MidtoLast(laststr, midstr);printf(后缀表达式为%s\n, laststr);return 0; } 遇到操作数 遍历整个中缀字符串数组遇到数字字符就直接进行存储这里我们利用isdigit函数来判断是否数字字符在下面相关总结的部分会为大家详细讲解函数的使用方式这里只先需要知道它的头文件是#include ctype.h for (int i 0; midstr[i] ! \0;)//i有的情况是不的 {if (isdigit(midstr[i]))//数字字符直接放到后缀表达式里{laststr[j] midstr[i];} } 遇到运算符 在遇到运算符的时候遇到第一个操作符就直接压入栈中根据优先级来判断是谁先出栈谁后出栈“*”“/”的优先级高于“”“-”的优先级 遇到括号 并且在遇到操作符不是“)”想要进栈并且栈顶是“(”就直接压入栈中 for (int i 0; midstr[i] ! \0;)//i有的情况是不的 {else if ( top 0 ||midstr[i] ( ||(midstr[i] * || midstr[i] /) (mystack[top - 1] || mystack[top - 1] -) || mystack[top - 1] ( midstr[i] ! )){mystack[top] midstr[i];} } 出栈 遇到“)”并且栈顶元素为“(”则直接抵消 for (int i 0; midstr[i] ! \0;)//i有的情况是不的 {else if (midstr[i] ) mystack[top - 1] ()//直接抵消{i;top--;} } 剩余运算符全部出栈 将栈中的剩余元素都全部依次出栈 else//直接出栈 {laststr[j] mystack[--top]; }while (top 0) {laststr[j] mystack[--top]; }laststr[j] \0;//变为字符串 中缀转后缀完整代码 #include stdio.h #include ctype.hvoid MidtoLast(char* laststr, const char* midstr) {int j 0;//后缀表达式char mystack[100];//模拟栈int top 0;//栈顶指针当前可以存放数据的下标for (int i 0; midstr[i] ! \0;)//i有的情况是不的{if (isdigit(midstr[i]))//数字字符直接放到后缀表达式里laststr[j] midstr[i];else if (top 0 ||midstr[i] ( ||(midstr[i] * || midstr[i] /) (mystack[top - 1] || mystack[top - 1] -) ||mystack[top - 1] ( midstr[i] ! ))mystack[top] midstr[i];else if (midstr[i] ) mystack[top - 1] ()//直接抵消{i;top--;}else//直接出栈laststr[j] mystack[--top];}while (top 0){laststr[j] mystack[--top];}laststr[j] \0;//变为字符串 }int main() {char midstr[] 9-2*3(5-2)*2;//中缀表达式printf(中缀表达式为%s\n, midstr);char laststr[100];//后缀表达式MidtoLast(laststr, midstr);printf(后缀表达式为%s\n, laststr);return 0; }相关知识点 isdigit函数 实例 #include stdio.h #include stdlib.h #include ctype.h int main() {char str[] 1776ad;int year;if (isdigit(str[0])){year atoi(str);printf(The year that followed %d was %d.\n, year, year 1);}return 0; }运行结果
http://www.hkea.cn/news/14431104/

相关文章:

  • 网站建设与网页设计案例教程pdf下载域名信息备案管理系统查询
  • 企业网站建设文案案例个人网站做淘宝客教程
  • 如何设计网站步骤网站制作基础教程
  • 网站建设自查情况wordpress ip改域名
  • 百度智能小程序是什么wordpress极速优化
  • 淮安做网站的公司有哪些公司临沂百度seo
  • 西宁网站建设兼职如何使用手机看建设网站
  • 小偷程序做的网站能用吗建设一个购物网站的费用
  • 学习网站建设总结备案域名买卖
  • 有几家公司如何建设网站如何设计网站模板
  • 创建网站要钱吗专门做湘菜的网站
  • 百度爱采购网站官网荣茂网站建设
  • 沈阳手机网站制作汽车网站设计
  • 网站开发背景意义网站开发总结简写
  • 做网站金山设计很好看的网站
  • 做网站推广的联系方式装潢设计工作室
  • 用asp做网站遇到的问题大连开发区网站设计公司
  • 企业网站源码php外链网站是什么
  • 展示用网站模板北滘网站建设
  • 橙色企业网站模板logo设计软件在线制作
  • 做外贸一般要注册哪些外贸网站有没有做淘宝客网站的
  • 网站留言板的作用用html5做商城网站怎么做
  • php网站后台反应慢怎么解决长沙做网站团队
  • 如何用cms做网站wap网站在线生成
  • 售后网站开发需求文档台州市建站公司
  • 学做网站根学ps有前途吗长寿网站建设
  • 网站改版301是什么意思seosem推广
  • 网站物理结构网络营销意思
  • 网站建设当中的技术解决方案直接通过ip访问网站
  • 淞南网站建设找人网站 优帮云