欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年逆波兰表达式求值 .pdf

    • 资源ID:30550285       资源大小:38.20KB        全文页数:4页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年逆波兰表达式求值 .pdf

    题目: 逆波兰表达式求值学生姓名 : 李桐 20100820212 专业班级 : 通信工程二班背景表达式求值是程序设计语言编译中的一个最基本的问题因为任何程序设计语言都必须具有表达式求值的功能,同时表达式的计算应用也相当广泛,比如电力调度系统中的计算遥测、车站票务系统中的票价类型计算公式等。通常, 我们所说的表达式是由运算符、操作数、界限符所组成。而算术表达式中最常见的表示法形式有中缀、前缀和后缀表示法。中缀表示法是书写表达式的常见方式,而前缀和后缀表示法主要用于计算机科学领域。1、中缀表达式将运算符放在两操作数的中间。在运算中存在运算符的优先权与结合性的问题。例如运算:a*b+(c-d/e)*f 时,编译器即自左向右逐一检查,当检查到第一个运算符“ * ”时还无法知道是否执行;待检查到第二个运算符“ + ”时,因为知道“*”的优先级别高于“ + ”时,才知道执行“a*b”;当继续检查到“ ( ”时,可知道先执行括号以内部分等。2、前缀表达式将运算符放在两操作数的前面。这种表示法经常用于计算机科学,特别是编译器设计方面。为纪念其发明家Jan Lukasiewicz,这种表示法也称波兰表示法。3、后缀表达式将运算符放在两操作数的后面。后缀表达式也称逆波兰表达式,因其使表达式求值变得轻松,所以被普遍使用。前缀和后缀表示法有三项公共特征:( 1) 操作数的顺序与等价的中缀表达式中操作数的顺序一致( 2) 不需要括号( 3) 操作符的优先级不相关问题描述读入一个后缀表达式, 利用堆栈来计算该表达式的值,同时要效验后缀表达式是否正确。/*算法核心思想操作数入栈;遇到操作符时,操作数出栈,求值,将结果入栈;当一遍后,栈顶就是表达式的值。*/ #include #include #include using namespace std; typedef struct stack / 栈结构体 double num; stack *pre; stack; stack* top; / 定义全局变量栈顶名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - void initial(stack *& l) /初始化链表 l=(stack*)malloc(sizeof(stack); top=l; l-pre=NULL; bool pop(stack*& l , double &n)/出栈 if(top-pre=NULL) return false; n=top-num; top=top-pre; return true; void push(stack*& l , double n)/入栈 stack* temp; temp=(stack*)malloc(sizeof(stack); temp-num=n; temp-pre=top; top=temp; double caculater(double a , double b , char ch)/ 计算 switch(ch) case +:return a+b; case -:return a-b; case *:return a*b; case /:return a/b; default:printf(FALSE!n); double stringtodouble(char * input , int i) /将字符串转化为数字 double index=1; double sum=0; while(*(input+i)!=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - if(*(input+i)=.) /实现小数输入 i+; /跳过 .字符index=0.1; while(*(input+i)!=0) sum=sum+(*(input+i)-48)*index; index=index/10; i+; return sum; sum=sum*10+(*(input+i)-48); i+; return sum; int main() string in; char *input; stack* l; initial(l); while(cinin) input=(char *)malloc(in.length()+1)*(sizeof(char); /实现任意长度字符串输入in.copy(input,in.length(); inputin.length()=0; if(*input=-&(*(input+1)=0)&(*(input+1)=0)&(*(input)num); /打印结果getch(); return 0; /总结本实验的难点是对字符串的处理! !名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

    注意事项

    本文(2022年逆波兰表达式求值 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开