输入中缀算术表达式,将其转换成后缀表达式并输出:再对后缀表达式求值 5C

操作数支持多位数和小数;
运算符仅考虑+、-、*、/、(、)、#(#可用作结束符);
中缀表达式从键盘输入或从文件输入。对输入的中缀表达式要进行合法性检查(表达式头尾以及运算符左右可以包含若干空格)。
程序结构: 类型说明及子函数定义;
main()
{ 变量说明;
输入中缀表达式,存入E[n];
调用Mid-post(E, B);
调用Postcount(B);
打印表达式结果;
Y 继续?
N
停止 }

0

1个回答

3
lan_shusheng
lan_shusheng 有没有C语言版的呢?因为小数的实现始终没办法解决,我自己也不会改
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
中缀表达式求值 ,中缀表达转化为后缀表达式求值,
中缀表达式求值 中缀表达式就是我们平常所见的数学式子 :5+3 6+5*8 -3*(1-9) 等等 这类表达式的特点就是运算符与操作数有特定的规则 如"+" 加数+加数 、‘-’ 被减数 -减数 等等 一般来说运算符在操作数中间 这类表达式我们可以直接计算 ,但计算机计算却有些麻烦了 所以我们必须设计一个合适有效的算法来让计算机计算这些表达式 一种方式...
在C++中使用栈来把中缀表达式转换为后缀表达式并求值,简单明了
#include #include//头文件包含atoi()函数 using namespace std; typedef char T; class stack{ T data[100]; int sz; public: stack() :sz(){} void push(const T& d){ if (full()) thr
输入一个中缀表达式,将其转换为等价的后缀表达式后输出并计算结果。
输入一个中缀表达式,将其转换为等价的后缀表达式后输出并计算结果。
四则运算表达式求值(中缀表达式与后缀表达式转换)--- 栈的应用
中缀表达式转后缀表达式 首先借助辅助栈,遇到数字和字符直接打印,遇到符号把当前符号和栈顶元素进行优先级比较,如果当前元素优先级高,直接入栈,如果当前元素优先级低,则将栈内元素一次出栈再将当前元素入栈,遇到左括号,无条件入栈,遇到右括号,将栈内元素依次输出,直到左括号为止。 中缀表达式:(9+6)* 7 - 8/2=====>>>>>>后缀表达式:9 6 + ...
利用栈将中缀表达式转换成后缀表达式,并将得到的后缀表达式求值
头文件:函数的声明 #include #include #include #define STACKSIZE 100 #define MAXSIZE 50 typedef char ElemType; typedef struct { ElemType stack[STACKSIZE]; int top; }SeqStack; typedef struct { float dat
算术表达式转后缀表达式求值
数据结构c语言算术表达式求值(转化为后缀表达式的方法)(双栈:符号栈和数据栈)
计算四则表达式(中缀式转后缀式,然后计算结果)
1. 目的:写一个程序,从键盘输入一个合法的四则运算biaod
C语言::将中缀表达式转换为后缀表达式并计算结果
百度上都是算法,没找到代码,于是顺手就写了一个出来........
中缀表达式转后缀表达式并进行计算(原理)
在计算一个表达式的时候,可以用数据结构中栈的知识,将我们平常熟悉的中缀表达式转为后缀表达式,再将后缀表达式进行计算得到结果。先说下什么是中缀什么是后缀: 中缀表达式:eg: 9+(3-1)*3+10/2,就是我们平常计算时的表达式; 后缀表达式:eg: 9 3 1 - 3 * + 10 2 / + ,不包含括号,运算符在两个运算对象后面的表达式。 1.中缀表达式转后缀表达式 我们先初始化一...
【数据结构】栈的应用---四则运算表达式求值(中缀表达式与后缀表达式转换)
用计算机实现带括号的四则运算的方式。这里的困难在于乘除运算的优先级高于加减运算,并且加入了括号,使得问题变得更加困难。20世纪50年代,波兰逻辑学家想到了一种不需要括号的后缀表达法,我们也把它称为逆波兰表示。比如:9+(3-1)*3+10/2,如果用后缀表示法就是9 3 1 - 3 * + 10 2 / +,这样的表达式称为后缀表达式,叫后缀的原因在于所有的符号都是要在运算数字的后面出现。后缀表达式
中缀表达式转后缀表达式并进行计算 原理
在计算一个表达式的时候,可以用数据结构中栈的知识,将我们平常熟悉的中缀表达式转为后缀表达式,再将后缀表达式进行计算得到结果。先说下什么是中缀什么是后缀: 中缀表达式:eg: 9+(3-1)*3+10/2,就是我们平常计算时的表达式; 后缀表达式:eg: 9 3 1 - 3 * + 10 2 / + ,不包含括号,运算符在两个运算对象后面的表达式。 1.中缀表达式转后缀表达式 我们先初始化一...
中缀表达式输入、转换与计算(前缀和后缀)内附流程图
·问题描述 表达式2*(9+6/3-5)+4,称为中缀表达式,表示成2 9 6 3 / + 5 - * 4 +称为后缀表达式,表示成+ * 2 - + 9 / 6 3 5 4称为前缀表达式。 ·基本要求 将中缀表达式,转换为后缀表达式和前缀表达式,再分别计算转换后的表达式值,比较两个计算结果,判断转换正确性和计算正确性。 ·编程 (1)读入中缀表达式,表达式的数据可以是实型、整型; (2)转换为后缀表达式,输出和保存; (3)转换为前缀表达式,输出和保存; (4)完成后缀和前缀表达式的计算,输出和比较计算结果,判断处理的正确性; ·输出要求与格式 按字符串格式输入中缀表达式,如2.85*(9.3+6.4/2-5.13)+4.412 ·输出要求与格式 输出转换后的后缀、前缀表达式; 完成计算,输出计算结果,和比较结论;
中缀表达式转换为后缀表达式并求值(栈的使用)
中缀表达式转换为后缀表达式并求值(栈的使用) 中缀表达式如2*3+(4-3), 其运算符一般出现在操作数之间, 因此称为中缀表达式,也就是大家编程中写的表达 式。编译系统不考虑表达式的优先级别, 只是对表达式从左到右进行扫描, 当遇到运算符时, 就把其前面的两 个操作数取出, 进行操作。为达到上述目的, 就要将中缀表达式进行改写,变为后缀表达式 如上面的表达式 2*3+(4-3), 就变为
表达式求值(中缀转后缀及后缀表达式求值)
。中缀表达式转后缀表达式:中缀表达式转后缀表达式遵循以下原则: 1.遇到操作数,直接输出; 2.栈为空时,遇到运算符,入栈; 3.遇到左括号,将其入栈; 4.遇到右括号,执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出; 5.遇到其他运算符’+”-”*”/’时,弹出所有优先级大于或等于该运
中缀表达式转换为前缀及后缀表达式并求值(java实现)
转载自:http://www.java3z.com/cwbwebhome/article/article8/83542.html?id=4612 它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。 举例: (3 + 4) × 5 - 6 就是中缀表达式 - × +
中缀表达式转换为后缀表达式 简易实现(c++)(简易表达式计算)
最近在学数据结构,看《数据结构与算法分析》来自学,在看到表 栈 队列这一章的时候发现后缀表达式这个比较好玩的东西,因为以前计算表达式的时候都是直接对中缀表达式进行处理,而且比较麻烦,现在有了后缀表达式的话就比较简单了,下面就是c++的实现#include <iostream> #include <stack> using namespace std; //返回各个符号的优先级,数字最大 int pr
将算数表达式转换成后缀表达式并计算结果
背景         用计算机实现带括号的四则运算的方式。这里的困难在于乘除运算的优先级高于加减运算,并且加入了括号,使得问题变得更加困难。20世纪50年代,波兰逻辑学家想到了一种不需要括号的后缀表达法,我们也把它称为逆波兰表示。比如:9+(3-1)*3+10/2,如果用后缀表示法就是9 3 1 - 3 * + 10 2 / +,这样的表达式称为后缀表达式,叫后缀的原因在于所有的符号都是要在运...
中缀表达式转后缀表达式并输出计算结果
后缀表达式又称逆波兰表达式,明显的特点是:逆波兰表达式中没有括号,计算时将操作符之前的第一个数作为右操作数,第二个数作为左操作数,进行计算,得到的值继续放入逆波兰表达式中。    但日常生活中我们总是习惯于写中缀表达式,所以需要先将中缀表达式转为后缀表达式。    假如中缀表达式为:12*(3+4)-6+8/2    在遇到数字时,我们直接输出,遇到符号,则入栈。但在入栈时,我们要判断栈内已有
C++栈的应用——后缀表达式求值、中缀表达式到后缀表达式的转换
一、前言     通常我们把栈归为一种基本的数据结构,同时它也是一种线性表结构,也就是说你要自己实现一个栈的数据结构,既可以用数组实现,也可以用链表实现。栈最主要的特点就是“先进后出”,因为栈只有一个入口和出口。   二、实现栈结构     根据栈的先进后出的特点,很容易设置栈结构的接口:入栈、出栈、判空、size()等,熟悉数据库的同学都知道数据库无非就是四种操作:增、删、改、查,其实对...
中缀表达式转后缀表达式求值(模板)
///中缀表达式转后缀表达式 #include #include const int MAX=100; using namespace std; char pp[MAX];//存储转换后的后缀表达式 void trans(char *str)//将中缀表达式转换后缀表达式 { stackss; int i,j; i=0; j=0; while(str[i]!
课程设计 栈之 后缀表达式求值 中缀表达式转后缀表达式
题目描述 为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为后缀{运算符在后,如X/Y写为XY/表达式。在这样的表示中可以不用括号即可确定求值的顺序,如:(P+Q)*(R-S) → PQ+RS-*。后缀表达式的处理过程如下:扫描后缀表达式,凡遇操作数则将之压进堆栈,遇运算符则从堆栈中弹出两个操作数进行该运算,将运算结果压栈,然后继续扫描,直到后缀表达式被扫描完毕为止,此时栈底元素即为该后
【表达式求值】中缀表达式转变为后缀表达式
参考blog:http://blog.csdn.net/Gengman/article/details/70236885#reply; 1.什么是中缀表达式     中缀表达式就是我们正常写的表达式,比如:((1+2)*5+1)/4; 2.什么是后缀表达式     后缀表达式就是根据中缀表达式转换来的,方便运算。     ((1+2)*5+1)/4 ==> 12+5*1+4/
C/C++的中缀转后缀并求值的实现
C/C++实现简单的中缀转后缀并求值
中缀表达式转换为后缀表达式(逆波兰表达式)
中缀表达式转换为后缀表达式(逆波兰表达式) 一、后缀表达式求值 后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下: 1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示: 2)接着读到“+”,则弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。 3)读到8,将其直接放入栈中。 4...
python实现中缀表达式转化为后缀表达式求值
# 运算符优先 ops_rule = { '+': 1, '-': 1, '*': 2, '/': 2, '^': 3 } def middle_to_after(s): &quot;&quot;&quot;中缀表达式变为后缀表达式&quot;&quot;&quot; expression = [] ops = [] for item in s: # 当遇到运算符 ...
获取键盘输入一个中缀表达式,将它转换成后缀表达式,并输出结果
获取键盘输入一个中缀表达式,将它转换成后缀表达式,并输出结果
c++后缀表达式转中缀表达式简略实现
一,中缀后缀表达式转换原理,网上的相关解释很多,我参考的是这一篇链接直接跳转到我参考的文章二,中缀表达式转后缀表达式的实现我只实现了基本的+-*/()这几个符号,以后自己如果需要可能会加我用的是1+2*3+(4*5+6)*7这个表达式进行测试,本人较懒,不打算测试更多话不多说,贴代码// // Created by jiahang on 2018/5/23. // 完成简单的后缀表达式,可以进行+...
C#实现中缀表达式转后缀表达式(RPN)并针对后者进行求值
最近因工作需要,用到“计算器”功能:输入一串文本,解析后进行计算。这部分只是作为一个简单的应用模块,而不是单独的程序,所以着重在算法的实现上。实际编码前,想过用栈、二叉树、循环递归等各种方法,但都否定掉了。一是因为给别人用的,感觉太复杂讲不清楚,二是我实现起来也有点麻烦。  最终,高手阿毛一语惊醒梦中人,问我是不是想用“RPN”实现。  RPN是啥?RPN就是逆波兰表达式,即后缀表达式。
C语言 实现中缀表达式转后缀表达式并求值
大一菜鸟,初学编程,这是我的第一篇博客,希望能用博客记录我的成长之路。 初学数据结构,刚接触链表和栈,看到有中缀表达式转后缀的题就试着实现了一下。下面贴上代码。因为使用的是字符型变量,所以只能计算个位数。 /* 堆栈练习——中缀表达式转后缀表达式 */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<stdbool.h
ACM数论----前缀,中缀,后缀表达式及其求值和转换
一.四则运算表达式 我们最常见的运算表达式是 : 12 * (3 + 4) - 6 + 8 / 2 这种类型,这就被称为是中缀表达式。 我们要用计算机来计算这一串表达式,然而表达式中涉及运算符的优先级顺序还有括号的干扰等,我们必须转化为一种易于计算的形式,于是这里就出现了后缀表达式和前缀表达式。 二.中缀转化后缀表达式及其运算   20世纪50年代,波兰逻辑学家想到了一种不需要括号的后缀表...
java中缀表达式转化成后缀表达式并计算结果
最近在做一个关于计算器的小demo,其中在计算环节需要把待计算的中缀表达式转换成计算机识别的后缀表达式。所以就想系统的整理一下关于中缀表达式转换的问题。一、介绍关于中缀表达式转换后缀表达式的理解,可以参考《数据结构和算法》之中缀表达式、后缀表达式转换,这里面给了一个具体实例转换的过程,比较容易理解。二、实现算法遍历中缀表达式:1、如果遇到数字,就输出到后缀表达式字符串数组中2、...
利用Python实现中缀表达式转后缀表达式
这里我们写一个Python的程序来实现将一个算术表达式(中缀表达式)如何转换成一个后缀表达式。由于初学Python,所以这里实现的算术符可能就只有基本的算式运算符,但是思想还是共同的,值得借鉴参考。 闲话不多说,对于没有学过《数据结构及算法》的朋友来说我们来科普一下什么是算术表达式,什么是后缀表达式(逆波兰表达式)。 中缀表达式指的是操作符是以中缀形式出现在操作数之间,这也就是我们平常使
算术表达式的前缀表达式,中缀表达式和后缀表达式
这里所谓的前缀,中缀,后缀是根据操作符的位置来定的,如果操作符在操作数前面,则称为前缀表达式,例如“- + 1 × + 2 3 4 5”;如果操作符在操作数之间,则称为中缀表达式,例如 “1+((2+3)×4)-5”;如果操作符在操作数后面,则称为后缀表达式,例如“1 2 3 + 4 × + 5 -”。   虽然中缀表达式符合人类的日常思维习惯,但是计算机在存储中缀表达式时,需要使用树这种数...
栈的应用:中缀表达式转为后缀表达式(c语言实现)
中缀表达式: 中缀表达式(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。 后缀表达式:
中缀表达式转后缀表达式求值(栈的应用)
咱们熟悉的四则运算表达式,中缀表达式,例如 (12+3)*2-6/2 利用堆栈的方法把中缀表达式转换成保值的后缀表达式(又称逆波兰表示法),并最终变为计算机可以直接执行的指令,得到表达式的值   挺简单的不假,也好理解,但就是一直无缘无故的卡着,卡的蛋疼…… 也不能说完全的无缘无故,其实是手生了吧,太生了…… #include #include #include #include
栈 实现 中缀表达式 转换成 后缀表达式 并 计算
#include &amp;lt;iostream&amp;gt; // cin 为输入 cout 为输出 #include &amp;lt;cstring&amp;gt; // 用栈 来 处理 一般的 中缀计算表达式 // 这里 只实现了 最基本的 + - * / 也可以根据程序需要 添加 ^ 和 % 以及 开方等运算 using namespace std; int campareToChar(char ...
中缀表达式转后缀表达式的C++代码
用dev c++写的代码,附有啰里啰嗦的注释和测试样例。太简单了不好意思要分。
利用栈实现中缀转化成后缀表达式并求值
后缀表达式 假设我们计算一个表达式:4*2+5+6*7=,他的计算顺序可以是将4*2的值存为A1,然后将A1和5相加,在将结果存入A1,然后在将6*7的值存为A2,最后将A1和A2相加,并将结果放入A1。那我们可以将这种操作顺序写成这样:4 2*5+6 7*+。这个写法就叫后缀(postfix)或逆波兰(reverse polish)写法。这种写法的在计算机中可以用一个栈来实现:遇见一个数,把他...
java算术表达式求值-中缀表达式转后缀表达式
Java中可以利用双栈算法实现算术表达式求值,下面结合代码讲解简单和复杂两种情况1、简单的算术表达式:(((3-1)*2)+3)主要思想: (1)利用两个栈,一个栈存储数字<栈顶到栈低依次是3123>,一个栈存储符号<栈顶到栈低依次是(((-)*)+)>(2)符号栈弹出一个符号时,是括号时则忽略,否则数据栈弹出两个数据利用该符号进行计算,将计算结果在入栈完整java代码如下:import java
中缀表达式 转 后缀表达式(逆波兰表达式) 及计算
中缀表达式转换后缀表达式: 正常表达式(中缀表达式)3+4*5-6 对应的后缀表达式(逆波兰表达式):3 4 + 5 × 6 - 【利用栈的方法 】 中缀表达式看成一个字符串,从左到右开始扫描中缀表达式: 遇到操作数:直接输出(添加到后缀表达式中) 栈为空时,遇到运算符,直接入栈 遇到左括号:将其入栈 遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,括号不...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 对大数据培训 对大数据数学基础对意见