栈的应用2---后缀表达式

计算机是如何基于后缀表达式计算的?算法

eg: 931-5*+遍历

对于数字:进栈计算机

对于符号:数字

  从栈中弹出右操做数;运算符

  从栈中弹出作操做数;

  根据符号进行运算;

  将运行结果压入栈中;

遍历结束:栈中惟一数字为计算结果;

 中缀转后缀算法:

对于数字直接输出;

对于符号:

  左括号:进栈;

  运算符号(分两种状况:) 与栈顶比较优先级

    若栈顶符号优先级低:此时符号进栈(默认栈顶如果作括号,左括号优先级最低);

    若栈顶符号优先级不低:将栈顶符号弹出并输出,以后进栈。

  右括号: 将栈顶符号弹出并输出,知道匹配到左括号;

遍历结束:

  将战中的全部符号弹出并输出。

相关文章
相关标签/搜索