- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构中实现表达式求值算法的巧妙转换.pdf
中 国 ·包 头 年 第 期
职 大 学 报 20054
数 据 结 构 中 实 现 表 达 式 求 值 算 法 的 巧 妙 转 换
李艳玲
(潍坊职业学院,山东 潍坊 261041)
摘 要 :本文介绍 了计算机处理 数据时表达式的三种表示形式,重点分析 中缀表达式与 后缀表达式相互转换 的三种方
法 ,突出体现直接转换和借用二叉树这种数据结构来实现其巧妙转换 的过程 。
关键词 :中缀表达式;后缀表达式;栈 ;二叉树 的中序遍历 ;二叉树 的后序遍历
中图分类号: 文献标识码 : 文章编号: — ()— —
��311.12B16711440200504006202
通常,我们所说 的表达式是 由运算符 (��������)、操作数 (1)中缀表达式转换为后缀表达式
(�������)、界 限符 (���������)所 组成 。而算 术表达式 中最常 中缀 转后缀是栈 应用 的一个 典型例子 。其 转换方法采
见的表示法形式有 中缀、前缀和后缀表示法 。中缀表示法是 用算 府优先法 。转换 过程需借助一 个运算符栈 和一个存放
书写 表达式的常 见方式,而前缀和 后缀表示法 主要用于计 逆波兰表达式的数组 。
算机科学领域 。 转换方法如下:
一、表达式表示法 将表达式开始符“ ”压入运算符栈 ,作为栈底元素 。
� #
1、中缀表达 式——— 将运算符 放在两操作 数 的中间 。在 �读入操作数 ,直接存入数组 。
运算 中存在运算符 的优先权与 结合性 的问题 。例如运算 :�*读入运算符 ,压入运算符栈 。
�+(�-�/�)*�时,编译 器 即 自左 向右逐 一检查 ,当检查到 (�)若后进运算符优先级别 高于当前栈顶元素时,则继
“”
第一个运 算符 *时还无 法知道是否执行 ;待检查到第二个 续进栈 ;
运算符“ ”时,因为知道“”的优先级别高于“ ”时,才知道 ()若后进 运算符优先 级别低于 或等于当前 栈顶元素
+*+�
执行“ ”;当继续检查到“(”时,可知道先执行括号 以内部 时,则将 当前栈顶元素 出栈 ,存入数组后进运算符入栈 。
��*
分等 。 �括号处理
“ ”
、前缀表达 式——— 将运算符 放在两操作 数 的前面 。这 (�)遇到开括号 (,进 运算符栈 ;
2
“ ” “ ”
种表示法经常用于计算机科学,特别是编译器设计方面 。为 (�)遇到 闭括号 ),则 把最靠近 的开括号 (,以及其
纪念其发 明家—J��L����������,这种表示法也称波兰表示 后进栈 的运算符依次出栈 ,存入数组 (括号脱去 )
遇到 表达式结 束符“ ”则把 运算符栈 内 的所有运算
法 。 � #
3、后缀表达 式——— 将运算符 放在两操作 数 的后面 。后 符依次弹 出,并存入数组 。
缀表达式也称逆波兰表达式 (, ), 例如 :求 ��+(�-�/�)
文档评论(0)