出栈序列研究
作者: John Waken 邮箱: JohnWaken@163.com 转载请著明: http://www.cnblogs.com/john-d/archive/2009/12/29/1635161.html 在学习数据结构的时候,老师出了这么个题目:1,2,3,4,5,6,7这七个数按顺序入栈,出栈序列有几种?当时我是先画了几个,比如1,2,3,4,5,6,7肯定可以,还有7,6,5,4,3,2,1也行,但是3,1,2,4,5,6,7就不合法。先考虑简 单的特殊情况是一种很好的思考方法,《concrete mathematics》就说过" smart mathematicians are not ashamed to think small ”,当然啦,我只是一个little programmer,不过每个人都应该提醒自己 think small。 还有另一个非常重要的思考方法——递归,特别是在计算机算法领域,我认为它是最重要的。递归首先要求把问题一般化,此题应该泛化为这样:1,2,3,... ,n这n个数依次入栈,出栈序列有几种? 递归的关键在于构造第推关系式,所以我们要定义一个描述结论的式子,在这里用 表示n个数依次入栈时出栈序列的个数。构造第推式就悲剧了,当时我推出它是一个类似于Catalan第推式的式子,那个兴奋哟!但是现在怎么也想不起来了。哎,人生最痛苦的事莫过于此