表达式求值
Posted irischen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表达式求值相关的知识,希望对你有一定的参考价值。
表达式求值
文/Pleiades_Antares
原文是今年三月份写的,现在看简直不堪回首qwq但还是决定放出来,因为感觉其中一部分内容还是可以给各位一定启发的
(因为最后一小段是我【私以为】“原创”的hhh)目前最新的此题相关请看国庆PJ心得一文
以一个NOIP小辣鸡选手的身份来写的。
这里用的是洛谷的一道题,戳我查看洛谷本题目,(虽然我的答案不是洛谷AC代码,这个是给学弟学妹讲表达式求值基础的时候用的程序qvq)
这里提到前缀表达式&中缀表达式&后缀表达式的基础。
首先是中缀表达式的c++程序,需要注意本程序只局限于一位数!!(改良版很容易鸭重点是理解题目)
附上代码与详解
//中缀表达式求值,only one digit!!
//感谢假牙! (假牙=我的计算机偶像quq)
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
stack<int> opnd;//数栈
stack<char> optr;//符号栈
string s;//字符串
char pri[9][9]{">><<<<>>",">><<<<>>",">>>><<>>",">>>><<>>",">>>>><>>","<<<<<<= "," ","<<<<<< ="};//优先级
int dth(char a){
if(a=='+') return 0;
if(a=='-') return 1;
if(a=='*') return 2;
if(a=='/') return 3;
if(a=='^') return 4;
if(a=='(') return 5;
if(a==')') return 6;
if(a=='