利用栈和队列进行表达式求值

您所在的位置:网站首页 表达式求值是_______应用的一个典型例子 利用栈和队列进行表达式求值

利用栈和队列进行表达式求值

2024-07-17 23:45:45| 来源: 网络整理| 查看: 265

利用栈和队列进行表达式求值 一、实验目的

深入了解栈和队列的特性,学会在实际问题下灵活运用它们。

二、问题描述

表达式求值运算是实现程序设计语言的基本问题之一,也是栈应用的一个典型例子。设计并演示用算符优先级对算术表达式的求解过程。

三、实验要求

1、算法优先级别如下: 在这里插入图片描述 2、以字符序列的形式从终端输入语法正确、不含变量的算术表达式,利用给出的算符优先级关系,实现对算术四则混合运算的求解过程。

四、实验环境

PC微机 DOS操作系统或 Windows 操作系统 Turbo C 程序集成环境或 Visual C++ 程序集成环境

五、实验步骤

1、根据给出的算符优先级,设置运算符栈和运算数栈; 2、在读入表达式的同时,完成运算符和运算数的识别处理,并将运算数的字符序列形式转换成整数形式,并进行相应的运算; 3、调试程序,检查输出结果; 4、实验小结。

六、测试数据

1.输入数据:1+(20+4)/(4-1) 正确结果:9 2.输入数据:2*9-6-(20+4)/(4-1) 正确结果:4

七、实验报告要求

1、问题描述; 2、算法的设计描述; 3、测试结果的分析与讨论; 4、实现算法的程序清单,应有足够的注释。

八、程序代码 #include using namespace std; #include typedef bool status; constexpr auto ok = 1; constexpr auto error = 0; stackOperandsOriginal; stack OperatorOriginal; stackOperands; stack Operator; void Calculation(); char number(char a) { double opead = 0; opead = (opead + int(a) - 48) * 10; while (1) { cin >> a; if (a 58) { opead /= 10; OperandsOriginal.push(opead); return a; } opead = (opead + int(a) - 48) * 10; } } status Expression_input() { char a; while (1) { cin >> a; if (a > 47 && a OperatorOriginal.push(a); return 0;


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭