⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transferfix.cpp

📁 中缀表达式转中缀表达式
💻 CPP
字号:
#include"mystack.h"
#include"mystack_e.cpp"
#include<iostream.h>

int isp(char a){
	switch(a){
	case '=':return 0;
	case '(':return 1;
	//case '^':return 7;
	case '*':case '/':case '%':return 5;
	case '+':case '-':return 3;
	case ')':return 8;
	default:return -1;
	}
}

int icp(char a){
	switch(a){
	case '=':return 0;
	case '(':return 8;
	//case '^':return 6;
	case '*':case '/':case '%':return 4;
	case '+':case '-':return 2;
	case ')':return 1;
	default:return -1;
	}
}

void TransferFix(){
	SepStack<char> s;char ch,a;
	s.push('=');
	while(cin.get(ch),ch!='='){
		switch(ch){
		case'(':case'+':case'-':case'*':case'/':
			for(a = s.pop();isp(a)>icp(ch);a = s.pop()) cout<<a<<' ';
			s.push(a);s.push(ch);break;
		case')':
			for (a = s.pop();a!='(';a = s.pop()) cout<<a<<' ';break;
		default:
			cin.putback(ch);
			double digit;
			cin>>digit;cout<<digit<<' ';break;
		}
	}
	while(!s.isEmptyStack()) {a = s.pop();cout<<a<<' ';}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -