1. n个不同的顶点共能组成多少不同的树 Cayley定理 n^(n-2)
2. n个节点的二叉树的个数 Catalan数 C(2n, n)/(n+1)
3. n个不同的数,其二叉排序树的形态数(其实二叉树的形态确定了,n个数填进去的方法是唯一的,所以和上面的相同) Catalan数 C(2n, n)/(n+1)
4. n个节点的有根树个数, 可以用O(n^2*logn)方法递推求出 (此处将计算组合数看成O(1))
设f[n]表示n个节点的有根树个数
dp[i][j] 表示有j个节点, 且根节点的每棵子树节点个数不超过i的根树个数
可以想到f[n] = dp[n-1][n]
1 ( 0 <= i <= n, j = 0)
dp[i][j] = 1 (i = 0, j = 1)