提要:
1.对上一篇文章的改进:增加括号
2.改变了 字符串转化成中缀表达式的方法
一、依旧是数据结构的知识:
1.将中缀表达式转换成后缀表达式
2.后缀的求值见上一篇文章
二、将字符串变成中缀表达式,保存到Q1中
在没有想到很好的算法。就是将字符串进行分割,把数值保存到分割后的数组resSplit中,然后对原来的字符串res遍历,寻找运算符。
期待找到更好的算法。
//按钮"="的响应代码
protected void ButtonEqual_Click(object sender, EventArgs e)
{
int si=0;
int s=1;//s=0时:上一个元素是数字。s=1时,上一个是符号
String res = TextBoxResult.Text;
char[] str = TextBoxResult.Text.ToCharArray();
string[] resSplit = res.Split(new char[] { '+', '-', '*', '/','(',')' });
try
{
for (int i = 0; i < str.Length; i++)
{
node tmp = new node();//临时节点
if ((str[i]==46||( str[i] - 48 <= 9 && 0 <= str[i] - 48) )&& s == 1)//新加入的元素是数值
{
tmp.sign = false;
while (true )
&nbs