堆栈

堆栈中常见的问题:

问题1: 后缀表达式怎么计算?
问题2: 中缀表达式怎么转换成后缀表达式?
问题3: 回溯算法
问题4: 深度优先搜索


什么是堆栈?
在思考这个问题之前我们先思考计算机是如何进行表达式求值的?

比如:5+6/2-3*7 = ?

正常的人类的算数逻辑是:6/2=3,3*7=21,然后再用5+3-21=-13
但是怎么让计算机去执行呢?

我们可以吧这一段表达式分成两个部分:

  1. 运算数: 5、6、7等
  2. 元算符号:+ - * /等

然后我们用后缀表达式来计算

中缀表达式:运算符号位于两个运算数中间(我们常用的)
后缀表达式:运算符号位于两个运算数之后。如:ABC*+DE/-

进栈出栈示意图

屏幕快照 2017-05-17 23.16.33.png

中缀表达式如何转换为后缀表达式

屏幕快照 2017-05-17 23.16.33的副本.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (数据结构与算法总是联系在一起) -数据结构简介 eg:图书摆放 新书的插入与旧书的查取(随便放:新书插入方便、但...
    Spicy_Crayfish阅读 4,294评论 0 0
  • 堆栈(顺序存储)数组方式 一个有界数组存储两个堆栈 堆栈(链式存储) 中缀表达式如何转换为后缀表达式从头到尾读取中...
    sunxiaohang阅读 5,016评论 0 4
  • 编译环境:python v3.5.0, mac osx 10.11.4 什么是堆栈 具有一定约束的线性表,只在一段...
    掷骰子的求阅读 5,481评论 2 5
  • 栈(stack)又名堆栈,它是一种运算受限的线性表。 栈分为两种——线性栈和链表栈,下面分别用两个算法题实现这两种...
    超级小江阅读 2,629评论 0 0
  • 君生我未生,我生君已老 她对大叔说,自从遇见你之后,再也没有哭花了脸,除了这次。 她蹲在院子里白兰花树下,对蚂蚁嘀...
    呆呆先阅读 1,800评论 0 2