波兰表达式:前缀表达式转中缀表达式并计算

对栈的应用与练习,方法低级很简单,仅仅是我个人的一个小练习:

把前缀表达式字符串一个一个放到栈Stack1里,再从取出Stack1中数字元素放到Stack2里,遇到符号则取出前两个元素做运算,再把运算后的表达式放入栈中。

计算时,动态创建数组,取出Stack1中的数字放数组中,遇到符号(第i位),将前两个位置上的取出进行运算再放到取出的最前面的数字的位置面上(第i-2位);重复到最后数组中只剩下一个元素,即最后的运算结果

上代码:

#include<iostream>
#include<string>
#include<stack>
using namespace std;
class Polish_prefix {
public:
    stack<string> Stack1;
    stack<string> Stack2;
    int b;
    void turn(stack<string> Stack1);
    void compute(stack<string> Stack1,int b);
};
void Polish_prefix::turn(stack<string> Stack1) {
    while (!Stack1.empty()) {
        if (Stack1.top() == "+" || Stack1.top() == "-" || Stack1.top() == "*" || Stack1.top() == "/") {
            string a, b, c;
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值