【C++】中缀表达式转化为后缀表达式(带字母、正负数)

文章介绍了如何使用栈来实现将包含字母、数字和运算符的中缀表达式转换为后缀表达式的过程,包括处理优先级、正负数判断和空格消除的方法,以及相应的C++代码示例。

问题:给定一个可能包含字母、数字(正负数)的中缀表达式,请将其转化为后缀表达式

· 核心思想:利用栈来实现该操作。

1.数据准备:

首先定义两个string类型的变量str和ans,分别用来存储所给的中缀表达式和最后要输出的后缀表达式。

定义一个栈stk,用来执行中缀变后缀的相关操作。

2.判定优先级:

在前缀转中缀的过程中,是通过计算各运算符的优先级来进行的,因此需要设计一个函数,用来判定某个运算符的优先级。

预设“+”和“-”的优先级为2,“*”和“/”的优先级为3,“^”的优先级为4,其余如括号等的优先级设定为1.

因此,传入所给的运算字符ch,通过该函数,可依据ch的类型返回其优先级。

3.算法思想:

①去除所给

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值