一、使用说明

1.1 项目简介

表达式求值是程序设计语言编译中的一个最基本的问题,就是将一个表达式转化为逆波兰表达式并求值。具体要求是以字符序列的形式从终端输入语法正确的、不含变量的整数表达式,并利用给定的优先关系实现对算术四则混合表达式的求值,并演示在求值过程中运算符栈,操作数栈,输入字符和主要操作变化过程。

要把一个表达式翻译成正确求值的一个机器指令序列,或者直接对表达式求值,首先要能正确解释表达式。任何一个表达式都是由操作符,运算符和界限符组成,我们称它们为单词。一般来说,操作数既可以是常数,又可以是被说明为变量或常量的标识符;运算符可以分成算术运算符,关系运算符和逻辑运算符3类;基本界限符有左右括号和表达式结束符等。为了叙述的简洁,我们仅仅讨论简单算术表达式的求值问题,这种表达式只包括加,减,乘,除4种运算符。

人们在书写表达式时通常采用的是“中缀”表达形式,也就是将运算符放在两个操作数中间,用这种“中缀”形式表示的表达式称为中缀表达式。但是,这种表达式表示形式对计算机处理来说是不大合适的。对于表达式的表示还有另一种形式,称之为“后缀表达式”,也就是将运算符紧跟在两个操作数的后面。这种表达式比较合适计算机的处理方式,因此要用计算机来处理,计算表达式的问题,首先要将中缀表达式转化成后缀表达式,又称为逆波兰表达式。

1.2 项目功能要求

为了实现表达式求值,本项目要求首先读入表达式(包括括号)并创建对应二叉树,其次对二叉树进行前序遍历,中序遍历,后序遍历,输出对应的波兰表达式,中缀表达式和逆波兰表达式。

1.3 操作手册

运行程序后,进入欢迎界面,首先要输入表达式。

第一步,输入中缀表达式:

在输入相应表达式后,会自动显示中缀、前缀、后缀表达式。

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1400.html

c语言中缀表达式求值_[源码和文档分享]基于C++的表达式计算求值相关推荐

  1. java rpg对战_[源码和文档分享]基于java的RPG回合制游戏

    一.工作积累总结 该项目是一个回合制RPG游戏,讲述了动物主角对抗人类,自逃出动物园开始,一路与人类对抗,提升能力,并寻找新队友组成团体,逼得人类不得不与之谈判,最终与人类达成了和平协议的故事.玩家可 ...

  2. 远程服务器返回错误: (500) 内部服务器错误。_[源码和文档分享]基于TCP SOCKET实现的远程聊天系统...

    一.实验目的 本次实验需要完成一个实时聊天系统.该系统由聊天客户端和聊天服务器组成.客户端即可以给指定客户端发送信息,也可以把消息广播给所有客户端.通过这个实验,使得学生掌握socket API编程. ...

  3. java记事本技术参数_[源码和文档分享]基于JAVA的记事本

    一.绪论 现如今,电脑已经成为了每家每户甚至是每个人手头都必有的一种实用性工具,它改变了人们的生活,大大提高了人们的工作效率.在此基础上,电脑端的记事本应用一直是每台电脑所必备的实用性应用,不管是在台 ...

  4. c语言lr分析器的设计与实现_[源码和文档分享]基于有限自动机的词法分析器构造...

    一.目标 本次实验的主要目的是对自定义的程序语言的词法分析器程序构造,我从 C 语言当中选择了部分具有代表性的子集,实现词法分析器,主要是对编译原理课程中学习的从正则达式转化为 NFA,再从 NFA ...

  5. 迷宫搜索问题最短路_[源码和文档分享]基于C语言实现的勇闯迷宫游戏

    1 项目简介 迷宫只有两个门,一个门叫入口,另一个门叫出口.一个骑士骑马从入口进入迷宫,迷宫设置很多障碍,骑士需要在迷宫中寻找通路以到达出口. 2 项目功能要求 迷宫问题的求解过程可以采用回溯法即在一 ...

  6. 判断有向图g中顶点i到顶点j是否有路径_[源码和文档分享]基于Dijkstra算法的最短路径问题求解...

    摘 要 现实生活中许多数据的处理依赖于Dijkstra算法的应用,通过应用Dijkstra算法使复杂问题更加简单化.算法是以起始点为中心向外层层扩展,直到扩展到终点为止,最终求出最短路径.采用Visu ...

  7. 局域网抓包分析工具_[源码和文档分享]基于Libpcap实现的局域网嗅探抓包发包解析工具...

    第一章 需求分析 1.1 设计目的 1.1.1 基本要求 完成一个基于Libpcap的网络数据包解析软件,具有易用.美观的界面. 1.1.2 具体要求 能够解析本地或局域网的数据包,例如TCP包,UD ...

  8. java pop邮件 源码_[源码和文档分享]基于JavaMail的邮件收发系统

    摘 要 电子邮件在当今社会中扮演了一个很重要的角色.越来越多的人在使用它.而且用它的人数势必会继续增加.本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和 ...

  9. 基于jsp的网上商城_[源码和文档分享]基于S2SH框架的JSP和MySQL的网上商城系统

    随着网络技术的飞速发展,网络已经成为人们获取和交换信息的最有效途径,通过网络进行商品交易已经成为一种新型的购物方式.网上商城系统是将商品销售和计算机网络功能结合起来的一种新型的电商系统,是当前新技术革 ...

最新文章

  1. 说出一些数据库优化方面的经验?
  2. php对提交数据的验证
  3. shell命令 vxworks5.5_vxWorks shell命令
  4. python 数据库查询序列化_python-将sqlalchemy类序列化为json
  5. 诸神战纪2java_诸神战纪2死神归来
  6. 实例1:python
  7. iOS vs. Android,应用设计该如何对症下药?
  8. 明晚8点直播丨 Oracle RMAN 单实例异机迁移恢复(版本:11gR2)
  9. 开发微信网页及调试方法
  10. jquery 图片裁剪 java,jQuery实现图片上传和裁剪插件Croppie
  11. ubuntu系统重装恢复步骤
  12. 百度网盘web登录页-原生js实现
  13. Cadence Orcad Capture主要工作窗口介绍
  14. Bilateral attention network for RGB-D salient object detection阅读笔记
  15. NIO与Netty编程(三)之Netty编程
  16. winform listbox控件简单使用。
  17. php 转换成string,在PHP中将数字(1,2,3)转换为string(一,二,三)
  18. c语言 输入一行字符,分别统计出其中英文字母 空格 数字和其他字符的个数
  19. CRM和ERP的区别与联系
  20. 【WWDC】10分钟带你看完苹果WWDC2022、iOS16、iPadOS16、macOS Ventura、watchOS 9

热门文章

  1. DBA+北京社群第三次线下沙龙归来
  2. linux命令 - ln - 创建和删除软、硬链接
  3. JavaScript中圆括号()和方括号[]的一个特殊用法
  4. 浅谈tcpwrapper的基本使用方法
  5. 新东厂西厂时代——纪念被阉割了的手机——戏说移动的“×××短信”标准
  6. ORACLE 中ROWNUM用法总结(转载)
  7. OpenMP并行加速笛卡尔乘积
  8. logstash增量同步mysql数据到es
  9. 数据之路 - Python爬虫 - PySpider框架
  10. 我的游戏学习日志17——游戏元素的解析(1)