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

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

eg: 931-5*+

对于数字:进栈

对于符号:

  从栈中弹出右操作数;

  从栈中弹出做操作数;

  根据符号进行运算;

  将运行结果压入栈中;

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

 中缀转后缀算法:

对于数字直接输出;

对于符号:

  左括号:进栈;

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

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

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

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

遍历结束:

  将战中的所有符号弹出并输出。

 

 

  

posted @ 2016-08-31 09:25  蜗牛在奔跑  阅读(190)  评论(0编辑  收藏  举报