神奇的卡特兰数

今天发现一个神奇的算法,卡特兰数。居然可以这么厉害的,算出一个序列的二叉树的个数。

 

还有一个,一颗二叉树的前序遍历是入栈顺序,中序遍历是出栈顺序!!所以当给定了一颗二叉树的前序遍历,问有多少种情况的中序遍历是,也是卡特兰数。

 

卡特兰数:给定n个+1,给定n个-1,求某种特定序列的个数。这种序列满足,无论去前多少个数相加,都是大于等于0。最终序列的个数会等于第n个卡特兰数。

 

具体为啥会等于卡特兰数,请看这个博客,写的相当好。http://www.cnblogs.com/wwwjieo0/p/3780170.html

 

从+1,和-1联想到‘(’和‘}’的关系,要保证括号配对成功,就必须保证无论前多少个括号里面,左括号数大于右括号数。所以n对括号的匹配数(即2n个括号,注意对,也表明有n个左括号,n个右括号)就是n的卡特兰数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值