这真是令人头大的离散实训
我相信总有人跟我这个小白一样被离散实训折磨,然后我就从大佬那里嫖来代码分享了
我个人觉得自己码字的同时还是得多看优秀代码
#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
const int Maxsize = 100;
int get_priority(char ch);//获取命题联接词的运算优先级
void exp_postexp(char A[], char R[]);//把中缀式A转换为后缀式R
int main()
{
char A[Maxsize] = "";//中缀式
char R[Maxsize] = "";//后缀式
while (cin >> A)//循环输入测试用例
{
exp_postexp(A,R);//把中缀式A转换为后缀式R
cout <<R<<endl;
}
}
int get_priority(char ch)
{
switch(ch)
{
case '(':return 0;
case '!': return 5;
case '&': return 4;
case '|': return 3;
case '-': return 2;
case '=': return 1;
}
}
void exp_postexp(char A[], char R[])//把中缀式A转换为后缀式R
{
stack<char> S;
int size = 0;//后缀式长度,初始化为0;
int len = strlen(A);
for (int i = 0; i < len; i++)
{
if (A[i]