例如,对于N = 3,我们可以通过列出所有这些很容易找到,但当问我面临的问题任意N值。
Answer 1:
如果您正在寻找在二叉树那么,作为mcdowella说,选择(2N,N)/(N + 1)(Catalan数)就是答案。
如果您正在寻找在任意树木那么它可能是ñ。 ñ^(N-2)= N ^(N-1),但我不能完全确定。 Prufer的算法中告诉我们,有n ^(N-2)标记的树,任何一个节点都可以做了根,所以我们得到的数n ^(N-1)。
Answer 2:
这是覆盖在克努特第1卷(计算机程序设计艺术:基本算法)部分2.3.4.4大约有一半的数学的页面让你选择(2N,N)/(N + 1)和搜索序列中克努特发现HTTP ://oeis.org/A000108
Answer 3:
你可以去像这样使用动态规划:
让我们来fix element i as the root
的树。 现在,我们需要知道how many different trees
,我们可以形成the first (i-1) elements and the rest (ni-1) elements
。
所以我们按照这两个子阵列相同的步骤(i-1)
和(ni-1)
得到如下复发:
式:
胶乳:
树木[N]&空间; =&空间; \ sum_ {I&空间; =&空间; 2} ^ {I&空间; =&空间; N-1}&空间;树木[I-1] *树[NI-1]
Answer 4:
二叉树(2N,N)/(N + 1)(Catalan数)作为答案如果大于n ^(N-2)的树木标记树。
文章来源: What are the total number of possible ordered trees with N nodes?