栈的应用

2017-02-28  本文已影响0人  雷一凡

1.括号匹配

  算法思路:从第一个字符扫描遇到普通字符忽略,遇到左符号压入栈中,继续扫描,遇到右符号时从栈中弹出进行匹配,匹配成功,消除栈中那个左符号的元素。继续扫描ing

成功:空栈

失败:非空栈

2.中缀表达式(人类的思考)和后缀表达式(计算机的计算)

  中缀转化后缀的思想:

遍历中缀表达式中的数字和字符:

a.如果为数字 直接输出

b.若为符号  1. 左括号进栈 

                     2.运算符 与栈顶进行比较若栈顶符号优先级低则进展(默认左括号最低)若栈顶符号不                           低,则弹出

                    3 右括号:将栈顶的元素弹出知道匹配左括号

如8+(3-1)*5  ------》 8 3 1 - 5 *

如何基于后缀表达式进行计算

831-5*+

对于数字直接进栈

对于符号

从栈中弹出右操作数

从栈中弹出左操作数

将计算结果压栈

知道栈中剩下的结果为最后的计算数值

上一篇下一篇

猜你喜欢

热点阅读