首先我们在进行后缀表达式转换为后缀表达式的过程中,利用了一种常见的数据结构:栈。我们利用栈先进后出的特性进行转换操作。该栈用于存储表达式中的操作符:
+、-、*、/、(、)
所以,我们将该栈称作为操作符栈。
借助于栈这种数据结构,我们的算法逻辑
改了很长时间,到处出错,很难过
1.注意每次输入都要进行Inf.clear();
2.解决了迭代器遍历类型不匹配的warning:
for(vector<char>::size_type i=0; i<str.length(); i++)
3.最重要的还是把思路搞明白,注意各种细节,边界条件,以及如果利用比较优先级弹栈,可以将'('设置为优先级最低,这样任何操作符和'('比较时,直接进行压栈。
4.另外刚发现可以写成:
postf.push_back(op_st.top());
op_st.pop();
不改了,懒
5.算法思想:
首先我们在进行后缀表达式转换为后缀表达式的过程中,利用了一种常见的数据结构:栈。我们利用栈先进后出的特性进行转换操作。该栈用于存储表达式中的操作符:
+、-、*、/、(、)
所以,我们将该栈称作为操作符栈。
借助于栈这种数据结构,我们的算法逻辑