基于二叉树的将中缀表达式转换为前缀表达式的方法.pdfVIP

基于二叉树的将中缀表达式转换为前缀表达式的方法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
篓2012耄年第9月 成都大学学报(自然科学版) Vo1.3l NO.3 JournalofChe。n。g’。duuniv s。i—ty’(N。a。tu。r—alS’ci…enceEdition) Sep.2012 文章编号:1004—5422(2012)03—0247—04 基于二叉树的将 中缀表达式转换为 前缀表达式的方法 胡 云 (无锡广播电视大学,江苏 无锡 214011) 摘 要 :中缀表达式是使用频率最高的表达式形式,对其求值时,一方面要考虑表达式 中运算符的优先级,另 一 方面还要考虑运算符的结合性.尽管运用人 的思维能容易地判断中缀表达式的运算顺序 ,但使用计算机直接 处理就会显得非常困难.提出一种基于二叉树的方法,即将 中缀表达式转换为前缀表达式,然后在计算机上就 可以实现简单求值. 关键词 :中缀表达式;前缀表达式;二叉树 中图分类号:TtBl1.12 文献标识码 :A 级 .右括号 具有最高的栈外优先级,处理时一遇 O 引 言 到 立即将其压人栈内,进栈后 ,其栈 内优先级变 运算符和运算对象是表达式的两个组成部分, 得很低,仅高于 # ,其 目的是便于括号内的其它 根据运算符计算对象的数量将其分为单 目运算符、 运算符进栈 .其它运算符进栈后优先级数都减 1.运 双 目运算符和三 目运算符[1].为便于理解,本研究 算符优先级相等的情况只出现在括号匹配或栈底的 仅讨论由双 目运算符构成的表达式.根据运算符和 # 号与输人流最后的 # 号匹配时.前者将连续 运算对象的相对位置关系可以将表达式分为前缀表 弹出位于栈顶的运算符,直至遇到 为止.然后将 达式、中缀表达式和后缀表达式 .实际应用中,使用 退栈以成对消除括号,后者将结束算法. 频率最高的是中缀表达式,其运算符的两个运算对 转换后,表达式中运算对象的次序不变,而运算 象一个置于前面,另一个置于后面.人们习惯使用这 符的次序发生了变化,由处在两个操作对象的中间 种表达式形式,直观上求值也相对容易,但在计算机 变为处在两个运算对象的前面,同时去掉了所有的 上对其求值,因为同时要考虑运算符的优先级和结 括号.转换过程使用两个栈,一个用来存放运算符, 合性,就显得比较困难.对此,本研究提出一种基于 另一个用来保存转换得到的结果.对于存放运算符 二叉树的转换方法 . 的栈,先要在栈底放一个特殊运算符,假定为 # 字符,让它具有最低的运算符优先级,假定为数值 1 传统的转换方法 0.对中缀表达式字符串的扫描是从后向前进行的. 通常,将中缀表达式转换为前缀表达式的方法 算法具体描述如下: 是:把每个运算符的两个运算对象都移到它的后面, (1)运算符栈 R和保存结果的栈 D初始化,将 然后去除掉所有的括号.因此在前缀表达式中,没有 结束符 撑 压人栈R,然后读人中缀表达式字符串 括号运算符,也没有优先级的差别.本研究讨论的运 的最后一个字符ch. 算符及其优先级如表 1所示. (2)重复执行以下步骤,直到第一个字符:①若 表 1 各个算术运算符的优先级

文档评论(0)

higu65 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档