码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构——第三章 栈

时间:2017-12-31 16:43:38      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:image   执行   逆波兰   img   .com   如何   src   依次   中间   

先入后出

 

1.栈的进出问题(题目一般只说入栈顺序,而没说啥时候出来)

 

2.逆波兰式(栈的后缀表示,从中缀转后缀)

 

例:

(a+b)*3 +2

运算符在两个操作数中间,为中缀表达式

 

因为电脑太笨,所以需要将中缀表达式转换成后缀表达式,利用栈进行计算。

 

算法:

如何将中缀表达式转换成后缀表达式?

1.按执行的先后顺序,给表达式全部加上括号

2.把所有运算符移到右括号的后面

3.把所有的括号删除

 

例: a/b^c+d*e-a*c

 

1.这个式子需要这样计算 (((a/(b^c))+(d*e) )-(a*c))

2.(((a(bc)^)/(de)* )+(ac)*)-

3. abc^/de*+ac*-

 

对于计算机:

1。读取表达式exp的一个单词x

2。若x是操作数,则原样输出。否则执行3:

3。x是运算符。若x是) 则将栈中元素输出  直到遇到(为止。将(从栈中删除,执行4

4。x不是),循环比较栈顶元素和x的优先级,若不小于,则栈顶元素出栈输出

5。x进栈

6。若表达式已读完,则执行1,否则执行7

7。将栈中元素依次输出,直至栈空。

 

例如:8-(3+5)*(5-6/2)

 

技术分享图片

 

数据结构——第三章 栈

标签:image   执行   逆波兰   img   .com   如何   src   依次   中间   

原文地址:https://www.cnblogs.com/eret9616/p/8157890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!