关于在编程解决较大、难的算法时可以采取化归的思维策略:
例如:在解决中缀表达式向后缀表达式的转换问题中,如果一开始就思考如何将括号、运算符优先级等问题,一次解
决。不现实,而且容易有畏难情绪,所以,一开始就从最简单的入手。
例如:
1+2*3如何转化为 :1 2 3 * + 这个就很简单,只需要利用栈的特点就能实现。之后,加大难度(但是一次只增加一个点)
1*2+3如何转化为: 1 2 * 3 + 这个就需要在压栈的时候去判断栈顶元素的优先级,也不难实现。之后在加大难度
1*2*3+1如何转化为: 1 2 * 3 * 1 + ,这个需要将上面的判断改成循环判断,之后在考虑如何实现加括号的匹配问题。
(1-2) * 3如此往复,虽然每次都是进步一点,但是最后还是可以写出了的。