卡特兰数

  1. 括号匹配问题( '('的数量在任何位置总是大于')' ),已知括号的数量为n对,求有多少种排列可能

  2. 给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中1的个数不少于0的个数

  3. 计算不同形态二叉树的个数

    相关链接(转载)

    https://blog.csdn.net/wu_tongtong/article/details/78161211

简单的代码实现

算一算不同形态二叉树的个数

对于任意正整数n,计算n个结点不同构的二叉树个数。 例如,下面是所有三个结点的不同构二叉树(图片来自网络):

输入

一个正整数n

输出

n个结点不同构的二叉树个数,输出占一行

代码

#include <stdio.h>
//递推
int Catalan(int n){
    if(n == 0)return 1;
    if(n == 1)return 1;
    int sum = 0;
    if(n >1){
        for(int i = 0; i < n; i++){
            sum += Catalan(i)*Catalan(n-1-i);
        }
    }
    return sum;
    
}
int main(){
    int n = 0;
    scanf("%d",&n);
    printf("%d",Catalan(n));
}
posted on 2020-03-31 21:43  玻璃晴朗诶  阅读(138)  评论(1)    收藏  举报