C#实现计算后缀表达式
/// <summary>
/// 计算后缀表达式
/// </summary>
/// <param name="expression">表达式:"6 2 / 3 - 4 2 * +"</param>
/// <returns></returns>
public int PostfixExpression(string expression)
{
var bdslist = expression.Split(' ');
Stack<int> vs = new Stack<int>();
for (int i = 0; i < bdslist.Length; i++)
{
if (int.TryParse(bdslist[i], out int a))
{
vs.Push(a);
}
else
{
// 获取右侧的计算数
int right = vs.Pop();
// 获取左侧的计算数
int left = vs.Pop();
switch (bdslist[i])
{
case "+":
vs.Push(left + right);
break;
case "-":
vs.Push(left - right);
break;
case "*":
vs.Push(left * right);
break;
case "/":
vs.Push(left / right);
break;
default:
break;
}
}
}
return vs.Pop();
}

浙公网安备 33010602011771号