Ch05 Stack
Yang Haoran 7/2/2019 Data structure
# Stack
复杂计算机的实现:
- 中缀转后缀
- 计算后缀
中缀转后缀原则:
- 两个栈,一个运算符栈,一个字母栈,运算符出栈前先出所有的字母栈
- 当下一操作符的优先级高于栈顶操作符,入栈
- 当下一操作符的优先级低于栈顶操作符,一直出栈,直到遇到比其低级的操作符,再入栈
- 当 “( ” 入栈时,具有最高的优先级,直接压入栈
- 当 “ ( ” 出栈时,具有最低的优先级,除非碰到 “ )”,否则不会出栈
- 当读到“ ) ” 时,弹出栈中的操作符,直到遇到 “(”
例:a + b * c + ( d * e + f ) * g
后缀:a b c * + d e * f + g * +
后缀计算原则:
- 字母压入栈中,当遇到操作符时,弹出两个字母,并且把计算之后的数值继续压入栈中,以此类推