一,中缀后缀表达式转换原理,网上的相关解释很多,我参考的是这一篇
链接直接跳转到我参考的文章
二,中缀表达式转后缀表达式的实现
我只实现了基本的+-*/()这几个符号,以后自己如果需要可能会加
我用的是1+2*3+(4*5+6)*7这个表达式进行测试,本人较懒,不打算测试更多
话不多说,贴代码
//
// Created by jiahang on 2018/5/23.
// 完成简单的后缀表达式,可以进行+-*/的后缀表达式生成
// 存在一些cast问题,没有处理
//
#include <iostream>
#include <string>
#include <stack>
using namespace std;
void suffix() {
int value = 0;
stack<char> s;
string input;
cin >> input;
for (int i = 0; i < input.length(); i++) {
int j = i;
value = 0;
bool hasNumber = false;
//从input的起点开始,进行判断
for (; j < input.length(); j++) {
//从字符串中读取数字
if (input.at(j) <=